parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 09.02.2007 13:05

В связи с тем, что в парсере классы кладутся отдельные файлы, теоретически может возникнуть проблема с производительностью, когда этих классов много.
возникнет - приходите и расскажите о ней :)
у нас из-за этого проблемы ещё не возникали, при этом некоторые личности в проекте используют _десятки_ файлов/классов. зато проблемы с производительностью ни раз и не два возникали из-за доставания большого количества данных из SQL, сильно неоптимальных алгоритмах или выбранном подходе.


про возможности кеширования байт кода ПАФ писал в форуме.


кеш работает так, как описано в документации. на вопрос "как работает ^cache[]{}?" я могу только посоветовать посмотреть исходники, т.к. не понимаю что конкретно вы хотите знать.

^cache(0) работает как описано. парсер проверяет дату устаревания файла _до_ выполнения кода (можно представить, что он делает это в месте открывающей фигурной скобки), и если файл устарел, то начинает выполнять код в скобках (если не устарел - то считывает/отдает файл и игнорирует код). если код выполнялся, то на закрывающей фигурной скобке парсер сохраняет строку с результатом в файл, если это не было отменено с помощью ^cache(0). т.е. ^cache(0) актуален в момент выполнения кода, ведь по ходу его выполнения вы как программист можете решить, что _это_ кешировать совсем незачем. ^cache(0) - это kbim частный случай изменение времени кеширования изнутри {}. внутри кода вы можете не отключить кеширование вовсе, а лишь изменить время кеширования. если вы это сделали, то при сохранении резальтатов в файл парсер укажет новое заданное значение времени кеширования, а не то, которое было указано в качестве второго параметра у оператора cache.