четверг, 25 октября 2018 г.

generics, generics.collections

новомодные генерики и generics.collections поддерживает Lazarus, но Delphi 7 - нет, Delphi 2009 только начал поддерживать их.
поддержка Delphi 7 мне важна, поэтому можно использовать мои наработки с word/longword

среда, 24 октября 2018 г.

hashTab для ускорения поиска строковых ключей

нашел и адаптировал частично под Lazarus свою разработку хэш-таблиц hashtabs_longword.pas для хранения ключей строкой, а значение - longword. Значения будут хранить индексы в массиве с дополнительной информацией.
взять старые наработки и, модифицировав, применить.
а то я думал, что надо будет писать с 0

воскресенье, 14 октября 2018 г.

hashed модуль

пробовал я и думал, как бы во много мест программы добавить хэширование, чтоб ускорить парсинг html, css и додумался до того, что нужно выкладывать всю работу с хэшированным массивом в отдельный модуль.
и интерфейс простой и легко внедрить в разные варианты поиска по спискам строк

правый хвост длиннее!

добавил в функцию части строки нахождения среди атрибутов хэширование и сравнение хэшированных значений.
но проход по циклу остался! лишние сравнения!
добавлю еще одно поле в каждый элемент массива и по нему сделаю сортировку Шелла и поиск бинарный.
подобное можно дописать и переписать, ускорив, в код нахождения css-свойств. там сделано простым перебором и сравнением срок

пятница, 12 октября 2018 г.

продолжаю. планы на будущее

собрал последнюю версию FrameBrowserDemoId10Laz.exe
кэширование надо переписать начисто! там простой перебор по текстовому файлу.
заменить поиск всюду на поиск с хэшами. есть неплохая реализация MurmurHash.
возможно, распараллелить парсинг html/css и загрузку.
начать переход к synapse