Zatím jsem si jen pročetl článek a nedíval jsem se na zdrojový kód, takže nevím, jak přesně pracuje s de/alokací, nicméně ohledně JSON mám zkušenost z praxe - máme server, který hodně pracuje s JSON dokumenty a obsluhuje tisíce uživatelů. Obvykle to funguje tak, že dojde zpráva, načtou se vnitřní data, vygeneruje se odpověď a příp. uloží upravená vnitřní data - vše v několika JSONech. Při tomto systému je ideální při zpracování zprávy minimalizovat alokace. Ideálně tedy, aby všechny JSON hodnoty měly při zpracování jedné zprávy jeden (sdílený) alokátor (může být třeba tls v C++11 - zpracování jedné zprávy nepřesahuje hranice aktuálního vlákna), který alokaci (malloc/free) snižuje na minimum. V ideálním případě alokuje jeden větší buffer a pokud nepřeteče, celé zpracování zprávy bude mít jen tuto jednu alokaci - a protože vlákno zůstane aktivní pro další zprávy, lze buffer využít znovu, takže počet alokací na zprávu bude nula (resp. 1 / průměrný počet zpráv na vlákno za jeden restart serveru). A díky tomu, že po ukončení zpracování zprávy se všechny JSON struktury uvolní, nebude dlouhodobě docházet k velké fragmentaci.
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 51 064×
Přečteno 23 939×
Přečteno 22 871×
Přečteno 20 953×
Přečteno 17 760×