metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2006-05-24 07:37 pm

О уродах и козлопитонах.

Импортирую данные из старой бухгалтерской проги в свою.
Прога использует файловые базы на кларионе.
Так вот оный долбаный кларион реализует чтение файла так:
вывод из filemon:

APP.EXE:4012 READ TABLEFILE.DAT SUCCESS Offset: 447430248 Length: 5
APP.EXE:4012 READ TABLEFILE.DAT SUCCESS Offset: 447430253 Length: 544
APP.EXE:4012 READ TABLEFILE.DAT SUCCESS Offset: 447430797 Length: 5
APP.EXE:4012 READ TABLEFILE.DAT SUCCESS Offset: 447430802 Length: 544

Никаких мыслей о том, что обмен надо вести блоками, кратными странице файловой системы,
в голове у разработчиков не возникло.

(Anonymous) 2006-05-25 04:09 am (UTC)(link)
ОС сама всё заоптимизирует. Кэширование же никто в здравом уме не отключает.

(Anonymous) 2006-05-25 04:13 am (UTC)(link)
Да и сериализация в MFC наверняка делает разбор файла аналогично, но никто на неё не жалуется.

[identity profile] metaclass.livejournal.com 2006-05-25 04:43 am (UTC)(link)
Сериализации не нужно читать целиком файл размером в несколько сотен мегабайт в произвольном порядке.

[identity profile] metaclass.livejournal.com 2006-05-25 04:46 am (UTC)(link)
И тем не менее, СУБД имеют собственный файловый кэш и выполняют обмен с диском целыми страницами. Я как-то эти же самые кларионовские файлы читал в двух разных вариантах - так же кларион - по записям, и со страничным обменом - вычитывал целиком блок в память - во втором варианте производительность была выше на 30% где-то.

[identity profile] medvedd.livejournal.com 2006-05-25 09:06 am (UTC)(link)
Имела ли смысл данная оптимизация в те времена, когда данный Кларион был написан? :)