http://triptohell.info/moodles/junk/fte ... shader.png(that's about 4.8 million indicies, 250 times a second)
or in other words, if the engine avoids deprecated methods then vertex counts are pretty much irrelevent nowadays.
(I should probably take the time to point out that these are NOT entities, but rather geometry generated by the usage of a shader on the surface which they are upon, meaning its purely static just geometry with very little overhead).
using a base like my purecsqc mod (which completely disregards ssqc and is thus single-player-only) allows you to skip all of the network protocol overhead, but you still have overheads feeding the entities to the renderer and then on to opengl, and you'll need the qc to do your interpolation - this can actually be slower (because qc is executed via an interpreter rather than a jit).
builtins that itterate through lists (like the find builtin) will always have poor scaling with respect to high entity counts, so try to avoid those.
This includes traceline of course. the more entities you have in your room, the more tracelines you're generating and the more entities your tracelines are potentially able to hit.
there's a few ways to check where your overheads are:
r_norefresh 1:
this setting will skip 3d rendering entirely (you'll probably want gl_clear), leaving any 2d stuff including framerate displays on screen. if there's not much difference, then you know the renderer isn't your slowdown.
r_drawentities 0:
unlike r_norefresh, this setting will still draw the world, and probably some other things like particles. you can compare the two to determine if your slowdown is caused by an excessively complex world bsp entity.
pause:
by pausing the game, you inhibit all serverside physics and qc logic. if the framerate goes up then the server is spending far too long servicing movetypes or think functions.
profiling:
most engines support profiling in some way. both dp and fte can give wall-clock times for individual qc functions ('apropos profile' to see the commands). even vanilla quake can show you how many qc opcodes have been executed (but sadly this does not include the duration of time spent within builtins).
.