mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-30 08:00:51 +00:00
72a1fef714
It turns out cmem is not so good for many large allocations (probably a bug in handling the blocks), but was really meant for lots of little churning allocations anyway. After an analysis of winding lifetimes, it became clear that the hunk allocator would work very well. The base windings are allocated from a global hunk (currently 1GB, plenty for even ad_tears), and ephemeral windings are allocated from a per-thread hunk of 1MB (seems to be way more than enough: gmsp3v2 uses a maximum of only 56064 bytes, and ad_tears got through 30% before I gave up on it). Any speed difference (for gmsp3v2) seems to be lost in the noise: still completing in 38.4s on my machine. |
||
---|---|---|
.. | ||
base-vis.c | ||
fatpvs.c | ||
flow.c | ||
Makemodule.am | ||
options.c | ||
qfvis.c | ||
soundphs.c |