Сравнительный тест производительности имеющихся хеш-таблиц(согласно лазаревской вике) + Delphi TDictionary для общей оценки.
Задача: приложение читает текстовый файл(собранный из исходников Лазаря размером ~82МБ), нарезает его на слова и подсчитывает количество вхождений. Полученные пары key-count сортируются по невозрастанию count и сохраняются в текстовый файл. Процедура выполняется пять раз с отсечкой времени, в качестве результата берется лучшее время(в миллисекундах). Имена исходного и выходного файлов задаются в параметрах командной строки.
- Код: Выделить всё
Delphi TDictionary - 2574
fcl-base TFPDataHashTable - 1903
fcl-stl THashMap - 9172
rtl-generics TDictionary - 3791
CL4L TStrHashMap - 1627877(~27 мин)
Fundamentals TGeneralLongIntDictionary - 1905
StringHashMap TStringHashMap - 1997
GContnrs TGenHashMap - 2605
CL4fpc LinkedHashMap - 1856(с первого раза не взлетело)
LGenerics TGLiteChainHashMap - 1201
Исходники и тестовый файл можно найти здесь.
Добавлено спустя 1 час 2 минуты 13 секунд:
GeorgiPrivet писал(а):iskander
Может после каждого запуска теста необходимо почистить оперативную память? Вполне вероятно, что после нескольких подряд тестов тайминг ее работы будет хромать. Почитай тут как это правильно сделать https://tehnichka.pro/customize-ram-in-bios/ Если не поможет, то jdk версией пониже попробуй поставить.
Эээм, после какого каждого?