Zone.exe VTune performance analysis results (fairly long and
I thought I'd do a quick VTune run on Zone.exe as a couple of people have mentioned that they were having performance problems with it. Mainly I wanted to test that none of my DW/DA code was taking too much time, and to see if Image was correct in his fear of floats :)
This test was conducted as a level 60 halfling warrior in surefall glade containing about 25 NPCs (From Drawde's excellent db). I ran around for 10 mins killing every mob in the zone, pretty much constant fighting with multiple mobs at a time (and a lot of complete heals). System was an Athlon XP 1800+ with 512 meg RAM running Windows XP. Test was repeated 3 times, results were pretty consistent so I'm just posting the last one rather than work out the averages :) I was running Minilog, World.exe, a single zone.exe and EQ on the same machine. Code:
VTUNE Results I examined the assembler for it and found this was the culprit .. MOV al, BYTE PTR [ecx+08h] - stalls for 247 clock ticks That's the check to see if the timer is enabled or not. It comfirms what I've assumed for a while now, memory access latency is THE performance killer on modern PC's. I should have tried changing the 'enabled' flag from an int8 to a 4-byte type and tried it again, but I'm tired now :) IIRC, 32-bit x86 processors aren't keen on 8 bit variables. Interestingly rand() didn't show up at all, or _ftol (FPU conversion of a float to a long) which is a common performance killer. I've rambled on enough anyway, hopefully someone finds this useful or at least slightly interesting :) K. |
I find it very interesting and good information about what needs to be perfected
|
herm, CEQPacket::CRCLookup is pretty high too, and i think can be optimized better.
I think the crc there is just the standard crc32. There's sources out there that are much more optimized to do crc32, should check if switching to one of them would help. |
All times are GMT -4. The time now is 11:38 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.