Цитата:
Интересует, где с точки зрения производительности, а так же объема занимаемой памяти лучше хранить скрипты. Больше интересует производительность. Я вижу 4 варианта: 1. традиционно в файле; 2.в командных списках; 3.все скрипты в файле, вызывая нужный код с помощью вызова функций или по метке; 4.то же что и 3 но в командном списке.
В командных списках быстрее, а в файлах удобнее. Что же касается 3 и 4 - сам запутаешься и ошибки могут полезть.
А вот, собственно и ответ автора из конференции:
=============================================
> I've started Process Monitor to see what happens under the hood.
> It looks like PowerPro reads script files in blocks of 1 byte.
Its true that for some reason in the distant past I decided not to
use the stream I/O to read files line by line, and instead I use the
windows api to read file directly and parse the lines myself. Of
course, the Windows API has already got several levels of its own
buffering. Right now, it would break some other things if I decided
to add another level of buffering in PowerPro (e.g. processing to
capture the file position at start of for loop used in endfor
processing).
I ran the script at the bottom of this note both as a file and as a
command list and it ran about 20% faster as a command list. I don't
think buffering would get back all of this 20% by any means, but even
20% is not worth worrying about. If you have a case where you think
it is, you can always put the script in a command list.
; script illustrates timing using performance counters
local start=perfcount
for (local i=0; i<10000; i++)
local j=0
endfor
local end=perfcount
local dif= int64.sub(end,start)
dif = int64.mul(dif, 1000)
win.debug("Elapsed time in milliseconds:",int64.divide(dif, perffreq))
=================================================
Вкратце по-русски: Скрипты из командных списков выполняются на 20% быстрее, чем из файлов. Приведённый скрипт можно засунутьв список и в файл и сравнить результаты.
Цитата:
И 2-й вопрос вытекающий из первого: в какой момент происходит компиляция (интерпретация) скрипта в момент загрузки конфигурации или в момент выполнения.
В процессе выполнения скрипта