Nezapočítání času kompilace mi připadá jako zásadní problém. Nevím jaký JS engine couchdb používá, ale spousta js enginů optimalizují také, takže rychlost běhu programu se bude taky zlepšovat pro více záznamů (provede se JIT kompilace a pak už se nic neinterpretuje). Já bych k tomu byl hodně skeptický, dokud neuvidím nějaké komplexnější testy. Zatím mi to spíš připadá jako předčasná optimalizace. Navíc nechápu, proč nepoužít rovnou erlang, když už to autor zmiňuje jako nejlepší možnost z hlediska výkonu.
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.
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 57 665×
Přečteno 27 735×
Přečteno 26 411×
Přečteno 24 375×
Přečteno 22 876×