Хочу поделиться интересной новостью.
Последний месяц, в связи с укрупнением своих баз данных, крепко занялся жесткой оптимизацией скорости загрузки GEDCOM-файлов. Первоначально загрузка файлов размером около 20-30 тыс. записей (примерно от 7-8 мб и более) занимала порядка одной-двух минут. Недели две назад это время сократилось до нескольких десятков секунд.
А позавчера удалось очень сильно продвинуться. Текущий результат работы такой: известная база данных ITIS, как одна из самых огромных в формате GEDCOM, размер файла 91 мб, содержимое 536 тыс. записей - время загрузки составило 25 секунд!
К сожалению, пока что моя программа весьма неэффективна в плане расхода оперативной памяти: мой движок обработки GEDCOM-файлов очень гибок, но при загрузке 91мб файла, тратит в 10 раз больше памяти - около 1.2 гигабайта на 64-битной машине. На 32-х битных должно быть поменьше. В связи с этим, самый большой известный мне GEDCOM-файл, CoL2010, размером в 635 мб и количеством записей около 2 млн. - пока вообще не загружается - память полностью исчерпывается в процессе загрузки и программа вылетает. В дальнейшем я рассчитываю всё же одолеть и этот барьер, изменить архитектуру ядра, сделать менее гибкой, но более экономной. Со временем.
А пока, возможно кому-то это не очень понравится, но теперь прогрессия загрузки нормальных типовых файлов стала практически не видна: мелькнет очень быстро и пропадает. Даже не солидно как-то )))))