adderd
|
I've begun to poke around in VCCore to speed up vergec execution. As an initial step I've inlined the Chunk::GrabXXX functions. This speeds up vergec execution, it would seem, by between 7-14%. It appears that the operation of vergec is the same (haven't found any problems). So doing such can basically give us a free 10% boost in execution speed.
Both ProcessOperand and ResolveOperand are called... a lot... and so are the next best candidates for optimization. I'm looking into how they can be sped up.
Also, it seems variables are accessed by looking up their variable name in an array via linear crawl. That's not terribly efficient. Some sort of sorting, key, or binary tree needs to be used. Preferably variables should be accessed via integer offset into the variables array. This would necessitate a change to the verge compiler as well (as far as I can tell.) It looks like functions are already usually being accessed by number instead of name (sometimes they are not such as when the autoexec function needs to be looked up but the majority of cases are not like that).
Does anyone else have any suggestions for vergec speedup?
Posted on 2006-02-07 22:16:56
|