[python] rozsirovani pythonu

Radek Kanovsky rk na dat.cz
Pondělí Říjen 16 19:56:19 CEST 2006


On Mon, Oct 16, 2006 at 07:27:51PM +0200, Radek Kanovsky wrote:

> > Ja osobne pouzivam zminovany Pyrex, ale slysel jsem, ze se da pouzit i 
> > SWIG. Melo by jit o to, ze se kod napise primo v C/C++ a SWIG vygeneruje 
> > wrapper (mimo jine i pro Python), ktery se da potom pouzit.
> > Bohuzel nemam osobni zkusenosti, ale vice se da docist na 
> > http://www.swig.org/
> > 
> > Toto je myslim docela zajimave tema, tak nam potom prosim napis, co jsi 
> > vybral a proc.
> 
> Z pomoci modulu ctypes je mozne za behu ladovat dynamicke knihovy (*.DLL, *.so)
> a volat z nich exportovane funkce. Nekdy to muze byt jednodussi nez
> programovat mezivrstvu pres pyrex, swig a spol. Pro vyuziti taky neni
> potreba kompilator, coz muze byt nekdy vyhoda.
> http://docs.python.org/lib/module-ctypes.html
> V Pythonu je az od verze 2.5, do nizsich verzi jde doinstalovat.

Jeste me napadla poznamka k Pyrexu. Nekdy nemusi prinest temer zadne
zrychleni, protoze pouze "zinlinuje" volani Python-API ze smycky
bytecode interpertu. Navic pridava kolem volani a alokaci spoustu
omacky. Na druhou stranu, pomalejsi nez interpretovany kod asi nebude,
ale nekdy to proste nestoji za tu namahu.

Asi by bylo nejlepsi prvni zjistit, co nejvic progam brzdi (alokace
mnoha objektu, pomaly algoritmus, cekani na IO, ...) a podle toho se
rozhodnout. Dobrou pomuckou muze byt pythoni profiler.

Ve zdrojacich Pythonu jsou vzorove moduly Modules/xxmodule.c a
Modules/xxsubtype.c, pokud byste se rozhodl pro starou dobrou 
rucni praci.

Jeste jsem slysel, ze novy Playstation ma 8 procesoru a pojede
na nem pekelne rychle Python. Tim by se vse zoptimalizovalo
jaksi samo a clovek by se u tech optimalizaci i vytecne pobavil.

Radek Kaňovský


Další informace o konferenci Python