Hlavní navigace

Názor ke článku CouchDB a skriptování v C++

  • 30. 4. 2017 17:17

    Ondřej Novák

    Dekuji za nazor a za otazky.

    Nejprve proc nepouzit Erlang. Tak proc ne. Vyhodou CouchDB je svobodna volba skriptovaciho jazyka. Treba ja Erlang neumim. Veskery kod mam v C++, mohu treba sdilet hlavickove soublory s definicemi struktur. Vykon neni jedinym kriteriem. Pokud mam na vyber mezi pomalejsim JS, bez moznosti sdilet definice a rychlejsi C++ s touto moznosti, pak volim C++. Pokud budu potrebovat surovy vykon, mohu se prekonat a neco v tom erlangu tam spichnout.

    Co se tyce zapocitani casu kompilace. CouchDB pouziva spidermonkey. Nevim jak dobry ma JIT, ale rozhodne kompilaty nikam neuklada, takze kazda dalsi instance kompiluje a optimalizuje znovat. Couchcpp uklada kompilaty do cache, kompiluje se jen jednou pro novy skript a pripadne ze nekdo smaze cache nebo vyjde nova verze couchcpp (ktera automaticky cache smaze), jinak se nekompiluje, proto cas kompilace C++ fragmentu nezapocitavam. Vzhledem k tomu, ze pri zmene skriptu se provadi fullindex, je cas kompilace zanedbatelny vuci tomu, jak dlouho muze v realne db trvat reindex.

    Pri testech jsem opakovane provadel reindex bez toho abych nejak ovlivnoval oba skriptovaci engine. Zvysovani vykonu u JS casem jsem nepozoroval. Ty cisla byla stale stejna.