loftar wrote:I really don't want to discourage you guys from analyzing client performance and suggesting changes to improve it, but I really cannot help but think that y'all are looking in the wrong places. For instance:romovs wrote:Yes too many unnecessary object instantinations in critical routines.
Object creation in Hotspot is generally extremely cheap. I have at times even tested and benchmarked converting some very common object creations into pooled or mutable objects instead, and it has made no difference whatever. Which is as expected, really, as Hotspot implements object allocation as little more than the increment of a register. Young-gen GCs (or GCs overall, for that matter) also represent almost no part of the total CPU time expended by the client.
Never claimed it would make *significant* difference.

It's neglectable in view of other things but there is still some slight difference at least on lower end CPUs (i was toying mainly to make it workable on a C2D laptop + crappy mobile nvidia chip... inlined here and there, turned into mutable there and here, resorted to primitive datatypes in other places - the result is slightly lower CPU utilization plus ~5FPS tops. Not really worth it imo.)
But why shadows have so an adverse effect?

It doesn't seems to be an issue of integrated GPU. I though maybe shitty Linux Intel drivers where the reason but it's the same on Windows. Other games with shadows enabled e.g. Skyrim run just fine.
Is it related to this ?:
loftar wrote:To offer my theory on why the client performs as it does and how to improve it, I'm pretty sure it is simply because the client treats all objects (graphical, in-game objects, that is) as being completely dynamic and treating them all with equal dignity.