Názor ke článku JSON pro C++11 s immutabilním DOMem. od Ondřej Novák - Ono smyslem nebyl dosahovat maximální výkon, i když...

  • 13. 1. 2017 11:54

    Ondřej Novák

    Ono smyslem nebyl dosahovat maximální výkon, i když tedy samozřejmě o výkon jde také. Nicméně není cílem vést žebříčky výkonu. Spíš bylo cílem immutabilita a nástroje pro práci s immutabilními objekty.

    Samotný výkon parsování a serializace a manipulace s DOMem nemusí být oslnivá, nicméně hodně se projeví třeba možnost sdílet data mezi vlákny bez zamykání, nebo zřízení cache kde už mám data naparsovaná, atd. To by chtělo najít nějaký příklad, který by se implementoval jedním nebo druhým způsobem.

    Celý návrh vychází zejména ze zkušeností, jak pracuji s dokumentovou NoSQL databází. Zpravidla stáhnu dokument, něco v něm změním a zase ho uložím nebo pošlu uživateli, přičemž ono "stažení dokumentu" může být vyřízeno právě z cache. Bez immutability by ono "něco změním" mohlo buď způsobit propagace změn do cache, nebo budu muset stejně dělat hluboké kopie. Při zaručení immutability nemusí kopírovat vše, nový DOM vlastně vzniká za maximálního přispění starého, a kopírování se omezuje jen na přesun sdílěných pointerů.