[python] zaporny systemovy cas

superman feed na centrum.cz
Úterý Listopad 28 14:41:01 CET 2006


> A na jakou optimalizaci konkrétně se ptáš? 
> Bral jsem to spíš obecně. Ale rád se nechám 
> poučit, co přesně se děje při provádění pass.

Haha. Vzhledem k tomu, že GvR dělá problém pouhá implementace některých 
příkazů, a snaží se je v pythonu 3000 vyhodit, přičemž se tímto důvodem 
vůbec netají, pak čekáte subtilnější věci jako je optimalizace?

Proboha, vždyť se na to podívejte. Python prostě přeparsuje (a i to dělá 
špatně a se sekama), pak to převede do binární formy, kterou nahraje 
jako pyc, nebo optimalizované, kterou nahraje jako pyo, a která se 
prakticky ve výkonném kódu naprosto neliší od neoptimalizované.

Nějaká optimalizace naprosto nehrozí, protože je to jednak náročná věc 
(taková optimalizační jednotka bývá řádově složitější, než zbytek 
kompilátorů a interpretrů - není vůbec problém, aby optimalizační 
jednotka obsahovala 95% veškerého kódu i více), navíc žere čas a to u 
pomalého pythonu by byl problém.

Takže si opravdu nedělejte starosti, že by pass, případně dokonce for 
cyklus python vyoptimalizoval. Navíc python zavádí čím dál víc 
konstrukcí, které by chtěly opravdu velmi vysokou inteligenci aby se 
daly vyoptimalizovat, například klasický cyklus for, který se relativně 
dobře optimalizuje v pythonu neexistuje!!! Namísto toho je tam cyklus 
foreach, který se optimalizuje extrémně špatně až nemožně.

Buďte rádi, že je GvR a spol. schopen napsat interpretr jakž takž. I tak 
se mi to nelíbí. Proč se třeba nepoužije generátor parserů a gramatiky a 
namísto si GvR lepí svůj, samozřejmě horší, nechápu. Namísto toho na 
přednáškách o novém pythonu se dozvídám, že světě div se, GvR použije 
abstraktní syntaktické stromy!!! To mě zajímá asi stejně jako na výstavě 
traktorů, že jsou tam matičky M10.

Na optimalizaci chlapci zapoměňte. To je vyšší dívčí.

Miloslav Ponkrác


Další informace o konferenci Python