Elkezdtem tomld optimalizációján dolgozni, érdekes lesz.
Kaptam visszajelzést desktop-ról kb. 500 domain-el és 37 ezer szabállyal, itt már dögledezik és 2.5 percig tart egy futási ciklus az általam megálmodott 1 sec helyett :) Viszont itt sok folyamat van és a szabályok számával a futás idő jócskán exponenciálisan nő, egy sima szerveren nagyon kicsi a futási idő - átlagos szervereimen 0.2 sec. Úgy látom, hogy processzor típus is nagyon számít, órajeltől inkább függetlenül (illetve valszeg cache méret).
Ma az strcat2() funkcióban a malloc + régi adat átmásolását lecseréltem realloc-ra, így már eleve 3 %-al gyorsabb lett a kód. Persze tudom, eleve is csinálhattam volna így, de gyorsan össze akartam lapátolni egy működő verziót, mivel eleve alapjaiban eszközöltem változtatásokat sokszor, ezért még semmi nem volt biztos - még az sem, hogy sebességre elfogadható lesz.
(Jegyzet magamnak)
Optimalizálandó rutinok, ezek a kimagasló bottleneck részek, a többi funckió zeróhoz közelít futásidőben (desktop-omon 58 domain, 3281 szabálynál futási idők):
1.50 s / check()
0.37 s / domain_reshape_rules_wildcard_spec()
0.22 s / load()
0.15 s / reload()
0.14 s / domain_cleanup()