Автор Тема: Расширенный тест на производительность.  (Прочитано 20963 раз)

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #150 : Декабрь 12, 2016, 02:52:35 pm »
Оказывается, xds под линуксом не умеет работать с файлами > 2GB :-(. Программы просто падают при первой же попытке чтения.
И у gm2 такая же фича, по крайней мере с библиотеками ISO.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3012
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #151 : Декабрь 12, 2016, 03:01:05 pm »
Оказывается, xds под линуксом не умеет работать с файлами > 2GB :-(. Программы просто падают при первой же попытке чтения.
И у gm2 такая же фича, по крайней мере с библиотеками ISO.
А как они падают? Говорят что? Судя по всему оно не умеет работать с файлами >=2Gb - тесты же проваливаются начиная с 2Гб файлов.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #152 : Декабрь 12, 2016, 05:10:53 pm »
Пишут
#RTS: unhandled exception #1: IOException.notAvailable Readили
EXCEPTIONS.mod:57:3:IOChan: ChanId specified is invalid in RAISE

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #153 : Декабрь 12, 2016, 06:41:29 pm »
Попробовал через FIO, получил
this file (input) was not successfully opened.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3012
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #154 : Декабрь 12, 2016, 07:43:01 pm »
Попробовал через FIO, получил
this file (input) was not successfully opened.
Стоп. А у тебя какая система с gm2? 32 или 64 бита?

Ибо по коду FIO.mod выходит, что такое может быть только если юниксовый open вернул -1.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #155 : Декабрь 12, 2016, 07:49:24 pm »
32 бита.
Я уже дошел до си и fopen.  Там тоже  -1 и гуглить "Value too large for defined data type".


valexey_u

  • Hero Member
  • *****
  • Сообщений: 3012
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #156 : Декабрь 12, 2016, 07:51:48 pm »
32 бита.
Я уже дошел до си и fopen.  Там тоже  -1 и гуглить "Value too large for defined data type".
Насколько я понимаю, этой проблемы не должно быть в 64битах (на 32битных системах у линукса были проблемы с файлами больше 2Гиг). Можешь простой пример на модуле через FIO накидать, чтобы я протестил?
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #157 : Декабрь 12, 2016, 07:52:37 pm »
Хм, на FAT32 все работает, даже XDS.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3012
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #158 : Декабрь 12, 2016, 07:54:59 pm »
Хм, на FAT32 все работает, даже XDS.
Через FIO али как?
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #159 : Декабрь 12, 2016, 07:59:07 pm »
По-всякому. А на Ext4 ничего не открывает.

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #160 : Декабрь 12, 2016, 08:01:41 pm »
Тест для Ulm
MODULE tulm;
IMPORT SYSTEM, StdIO,InOut;
VAR
    inf:StdIO.FILE;
    inbuf: ARRAY [0..1023] OF CARDINAL;
VAR
n : CARDINAL;
ok:BOOLEAN;
BEGIN
ok := StdIO.Fopen(inf, "input", StdIO.read, FALSE);
IF ok THEN
locsRead := 1023;
ok := StdIO.Fread(SYSTEM.ADR(inbuf), 4, locsRead ,inf);
IF ok THEN
InOut.WriteCard(locsRead,8);   InOut.WriteLn;
END;
ok := StdIO.Fclose(inf);
ELSE
InOut.WriteString("open fail");   InOut.WriteLn;
  END;
END tulm.
gm2 tulm.mod -flibs=ulm,pim

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1953
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #161 : Декабрь 12, 2016, 08:08:25 pm »
Хм, на FAT32 все работает, даже XDS.
На FAT32 же нельзя делать файлы объёмом даже в 4 гигабайта ровно -- только меньше...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3012
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #162 : Декабрь 12, 2016, 08:09:09 pm »
Тест для Ulm
MODULE tulm;
IMPORT SYSTEM, StdIO,InOut;
VAR
    inf:StdIO.FILE;
    inbuf: ARRAY [0..1023] OF CARDINAL;
VAR
n : CARDINAL;
ok:BOOLEAN;
BEGIN
ok := StdIO.Fopen(inf, "input", StdIO.read, FALSE);
IF ok THEN
locsRead := 1023;
ok := StdIO.Fread(SYSTEM.ADR(inbuf), 4, locsRead ,inf);
IF ok THEN
InOut.WriteCard(locsRead,8);   InOut.WriteLn;
END;
ok := StdIO.Fclose(inf);
ELSE
InOut.WriteString("open fail");   InOut.WriteLn;
  END;
END tulm.
gm2 tulm.mod -flibs=ulm,pim
А что такое тут locsRead? А то мы с компилятором фрустрируем и ругаемся, ибо не можем понять что это такое и где искать.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #163 : Декабрь 12, 2016, 08:13:54 pm »
Блин, скопировал не оттуда. locsRead должно быть вместо n, или наоборот.

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #164 : Декабрь 12, 2016, 08:15:31 pm »
А это для pim
MODULE tpim;
IMPORT SYSTEM, FIO, StrIO,NumberIO;
VAR
    inf:FIO.File;
    inbuf: ARRAY [0..1023] OF CARDINAL;
VAR
  n : CARDINAL;
BEGIN
  inf := FIO.OpenToRead("input");
  IF FIO.IsNoError(inf) THEN
    n := FIO.ReadNBytes(inf,SIZE(inbuf),SYSTEM.ADR(inbuf));
    NumberIO.WriteCard(n, 8); StrIO.WriteLn;
  ELSE
    StrIO.WriteString("open fail"); StrIO.WriteLn;
  END;
END tpim.
gm2 tpim.mod -fpim