Měl jsem verzi, kde jsem měl vlastní alokátory. Měl jsem verzi bez virtuálních metod. Provedl jsem několik měření. Výsledkem bylo, že to mělo absolutně nulový vliv. Záleží samozřejmě na platformě, ale ty rozdíly budou malé. Když nebudu používá virtuální metody, budu tam mít switch/case a z toho pramení... ano bude tam tabulka pro skoky. Co je volání virtuální metody? Tabulka pro skoky... výsledek je ekvivalentní.
Alokátor tam chystám, ale jak říkám, nikdy jsem neměl v ruce alokátor, který by byl výrazně rychlejší, než standardní new třeba ve MS Windows. Dost mě ta měření kolikrát překvapila. Opravdu bývají standardní alokátory dost rychlé, že se optimalizace nevyplatí.
Pokud tam bude alokátor, bude nejspíš globální, cokoliv jiného věci jen komplikuje. Mohu demonstrovat, když bude zájem. Mám několik serverů pracující s protokolem JSONRPC, takže tak nějak vím o čem to je :)
Vždycky člověk bojuje s tím, jestli udržet kód maximálně KISS, maximálně standardní, nebo ho zaplevelit ručními optimalizacemi.
Děkuji za názor.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 50 630×
Přečteno 23 688×
Přečteno 22 738×
Přečteno 20 718×
Přečteno 17 626×