eval() a zatez systemu
Zdenek Hladik
hladikz na infima.cz
Středa Duben 22 13:17:57 MEST 1998
On Mon, 20 Apr 1998 10:01:26 GMT, adelton na fi.muni.cz (Honza Pazdziora)
wrote:
>"Zdeněk Mazanec" <bluehawk na cesnet.cz> writes:
>>
>> Mate pravdu oba. Je pravda, ze se zadny dalsi perl nebo jiny proces nepousti
>> ani kdyz se narazi na funkci eval(). Nicmene zminovana je skutecne pomerne
>> narocna na pamet a i na procesor. Je ovsem fakt, ze take dost zalezi na tom,
>> co se funkci eval() predhodi.
>
>No, ja jsem se snazil poukazat na fakt, ze je v principu uplne jedno,
>jestli napisu
>
> $a = $b + f(5);
>nebo
> eval { $a = $b + f(5); };
>nebo
> eval ' $a = $b + f(5); ';
>
>Proste ty prvni dva radky se prelozi v dobe prekladu skriptu, na to
>treti se zavola preklad az ve chvili, kdy uz byl kus toho skriptu
>proveden. Samozrejme, bez evalu je to rychlejsi, ale pokud mate
>dilema, jestli pouzit eval, a potom rozsirite svuj skript o dalsich 50
>radku, tak se to ztrati.
>
>--
To jsem taky tusil, ze pokud to jde, prelozi to uz v dobe prekladu,
jde ale o to ze mam knihovnu, ktera pouziva eval pro dosazovani do
html templatu. V kazdym template je cca nekolik desitek az stovek
substituci pres eval, ale z prinicpu nemuze zadny znich vyhodnocen v
dobe prekladu (template se zacita az za letu). Pokud zobrazuju dlouhou
tabulku je tech eval opravdu hodne.
Vesmes jsou to pouze dosazeni hodnot typu <TD>{$promenna}</TD> ci
jednoduche cykly, ale CGI samozrejme muze bezet mnohokrat zaroven.
Nezkoumal jste nekdo blize zda prekladac je nejaky DLL (v NT verzi
Activestate perlu) nebo je to vcelku? Predpokladam ze objem kodu
prekladace je tak velky ze asi nestoji za to ho drzet v pameti, pokud
v kodu zadny eval neni...
Zdenek Hladik
I N F I M A - W A N
/""""""\ Internet,LAN,WAN consulting
( (o) (o) ) Zazvorkova 2008 Praha 5,Czech
(..) tel/fax +4202-5612731
---- Internet: hladikz na infima.cz
\____/ --, BBS 3122741(30 lines)
/ , , BBS.INFIMA.CZ
`--+--| FTP,WWW,TELNET
' '
Další informace o konferenci Perl