Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - trurl

Страницы: [1] 2 3 ... 9
1
Раза в 2 примерно.

2
Да, js в FF быстрее не стал. И в хроме уже не ускоряется. Что интересно, wasm в хроме не быстрее js, а вот в ФФ заметно быстрее, немного обгоняет js хрома.
Пробовал и asm.js через Emscripten. В ФФ заметно ускорение (небольшое, меньше чем от wasm), а в хроме сильные тормоза.

3
Можно и разово, порядок оценить. У меня сортировка ~ 1.5-2 копирования.

4
А сколько занимает копирование файла?

5
Тогда странно, что сортировка не самая быстрая, возможно, что это слабость компилятора или недочёт в библиотеках.
Самая быстрая ( 256-buckets) - сортировка подсчетом. Там, правда, есть недостаток. На файлах от 8ГБ уже может возникнуть переполнение счетчиков, а если увеличить разрядность до 64 бит, они не влезут в ограничения.

6
Да там особенно и увеличивать некуда, уже 100MB.
Интересно ещё, у меня merge_rs почти вдвое быстрее, чем merge_qs, а здесь немного медленнее.

7
Смотрю на SSD ввод/вывод намного дешевле, чем на HDD. Эффект от сжатия слабее.

8
Предлагаю добавить в тесты файлы с нестандартными размерами, например 119 946 308 байт или 163 840 004 байт (достаточно большое простое число, умноженное на 4). Идея в том, что бы файл не делился на блоки равных размеров -- это может выявить ошибки в алгоритмах сортировки.
Да вроде никто не делит на равные блоки.

9
А почему mege_rs не попал в тесты?

10
Почитал я TFM. Большие файлы в 32-битных системах рекомендуется открывать через fopen64 или open64, которые делают системный вызов open со специальным флагом. В gm2 все пути ведут к open, в xds - к fopen.
Подозреваю, что все, собранное  с gcc -m32 и на 64-битной системе не сможет открыть 2GB файл.

11
Размер файла так не увеличить, он ограничен структурой записи в каталоге. Только размер тома можно.

12
А можно ещё iso?

MODULE tiso;
IMPORT SYSTEM, IOChan, ChanConsts, IOConsts, RndFile;
IMPORT STextIO, SWholeIO;
VAR
    inbuf: ARRAY [0..1024] OF CARDINAL;
    locsRead : CARDINAL;
    inchn: IOChan.ChanId; 
    res: ChanConsts.OpenResults;
BEGIN
  RndFile.OpenOld(inchn, "input", RndFile.raw, res);
  IF res = ChanConsts.opened THEN
    IOChan.RawRead(inchn, SYSTEM.ADR(inbuf), SIZE(inbuf), locsRead);
    SWholeIO.WriteCard(locsRead,8);
    STextIO.WriteLn;
    RndFile.Close(inchn);
  ELSE
    STextIO.WriteString("open fail");
    STextIO.WriteLn
  END;
END tiso.


13
Значит, дело в системе. Ну да, у меня же и си не открывает. Но почему тогда моя прога на xds валилась? Потому, что 32-битный?

14
На FAT32 же нельзя делать файлы объёмом даже в 4 гигабайта ровно -- только меньше...
Зато можно от 2 до 4.
На NTFS тоже работает, только медленно.

15
А это для 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

Страницы: [1] 2 3 ... 9