vertices instead of lines.) On large maps, this can result in a very
significant speed up. (In one particular map, ZDBSP had previously
spent 40% of its time just scanning through all the vertices in the
map. Now the time it spends finding vertices is immeasurable. Now 68%
of its time on that map is spent inside ClassifyLine--because that
routine is called more than 16 million times, which suggests that even
a minor speedup in that routine should have a big impact--if I could
just think of how that might happen.) On small maps, this won't make
much of a difference, because the number of vertices to search was so
small to begin with.
SVN r167 (trunk)
the runtime is spent in that function. I should probably write a faster
vertex finding routine, since I currently just do a linear search through
all the vertices. That ought to help speed up SplitSegs, the second most
time-consuming routine. I also tried storing vertices as doubles instead
of fixeds, but that made performance drop across the board, so that's a
change that didn't make it in.
Ironically, the GCC compiled version is noticeably faster than the VC
version for x87 math, but VC produces a marginally faster SSE2 version.
SVN r163 (trunk)