@Karell: Hlavní problém toho C++ kódu je v tom, že často dereferencuje/kopíruje shared_ptr. Protože je dereference/kopírovaní shared_ptr thread safe, je to atomická operace sychronizovaná mezi thready. I když to ten kód vůbec nepotřebuje, pořád se tam provádí atomický increment/decrement. Trochu jsem to upravil, tahle verze je u mě asi o 25% rychlejší:
http://pastebin.com/R0CkHvr4
Nicméně pokud bys to chtěl ještě výrazně zrychlit, musel by ses zbavit thread safe smart pointerů v Line. Takhle nějak to vypadá v profileru (je to se zakázaným inlinováním, aby byly vidět funkce, takže to není na 100% stejné, jako když se inlinuje):
http://www.pictureshack.us/images/28500_profiler.png
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 36 064×
Přečteno 25 245×
Přečteno 23 707×
Přečteno 20 089×
Přečteno 17 779×