On 08/28/2016 05:51 PM, Honza Král wrote:
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2016-08-28 17:40 GMT+02:00 Petr Messner <petr.mess...@gmail.com>:
Díky Honzo za odkaz.

Jinak - Python, Ruby, Java, C++, na jazyku nezáleží... Musím vědět, jestli daná 
operace manipuluje s některým svým operandem, nebo vytváří novou hodnotu. A 
protože jsou stringy v Pythonu immutable, tak jako programátor bych měl tušit, 
že se bude kopírovat. A dát si pozor na případy, kdy se bude kopírovat furt 
dokola.

Že to pypy nějak umí optimalizovat je hezké, ale i kdybych ho používal, tak 
fakt není dobré spoléhat se na to, že mi překladač opraví chybu v samotném 
návrhu algoritmu.

stale plati, ze mnohem dulezitejsi nez kompilator je programator -
pouzivam tak to, co dava z hlediska kodu (nikoli kompilatoru nejvetsi
smysl). Python s tim pocita a je na to zarizeny.

Snazit se o takove optimalizace vetsinou prinasi vice problemu nez
uzitku. A to i kdyz odhledneme od problemu spojenych s tim, ze python
ma nekolik implementaci ktere se chovaji jinak.

Zrovna tohle je v dokumentaci [0], takže tady je jasné jak se implementace budou (v nejhorším případě) chovat. Když chci algoritmus navrhout pořádně, je opravdu dobré na tohle vzít ohled.

Nebo se teda dá spolehnout buď na to, že můj program, resp. programy co používají moji knihovnu, pojede jenom na CPythonu nebo PyPy, kde je tohle v určitých případech optimalizované, nebo že na to, že budou zpracovávat tak málo dat že kvadratická náročnost nebude hrát roli.

[0] https://docs.python.org/3/library/stdtypes.html#common-sequence-operations - poznámka (6)

_______________________________________________
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Odpovedet emailem