Excessive memory usage causing choppy FPS


(Pseudo) #1

I’ve noticed that while ET is running, viewing the Windows Task Manager Processes tab shows ET to be using 310MB of memory, and 522MB of Virtual Memory. That’s huge. Now, the weird thing is that it’s only started occuring in the past 10 days or so, around about the time I installed ETPro 2.05 (because my local game servers require it, and it rocks). However, I’ve tried reinstalling ET without patching or ETPro, and it’s still sucking up a huge amount of memory and thus giving choppy frame rate every time it accesses the page file (all too frequently).

Can someone else please post their ET memory usage, because if I’m not mistaken, therein lies the cause of my choppy frame-rate issues.

For the record, com_hunkMegs “222” (was 256, lowered it to see if it made a difference. It didn’t), and the other xMegs are at default values. I’ve even tried a fresh install with completely default values, and get the same problem (although lower memory usage, it’s still choppy).

Any helpful suggestions appreciated. OS is XP SP1 and 512MB RAM.


(Kendle) #2

One thing to note when you change memory settings (hunkmegs etc.) is that there’s a file in etmain called hunkusage.dat. You should delete this file whenever you change memory settings or they don’t take effect.

Also, those figures you give do seem incredible. I’ve got 768Mb RAM and have plenty of free memory with ET running (i’m using 256Mb hunkmegs).

If you’re noticing lots of hard disk access when running ET it might not be ET that’s at fault. In WinXP there’s a known issue relating to the Windows Indexing service and PunkBuster. You should disable the Indexing service (not just stop it or set it to Manual as it’ll start next time you boot your PC anyway). You disable services with Start -> Settings -> Control Panel -> Administrative Tools -> Services.


(Lekdevil.NL) #3

That’s not true. Hunkusage.dat is a temporary file that gets created every time you load a map. It contains the amount of memory (hunk) used by each .bsp file.

Anyhow, the indexing service should indeed be disabled. Also, try setting \pb_system 1 once before connecting to a server (see PunkBuster FAQ for details).

This is the output Sandra gives after loading Radar and ETPro, with com_hunkmegs set to 192 and with 1 Gig total RAM:

SiSoftware Sandra

Window Information
Class : Enemy Territory
Type : Unicode

Process Information
Name : ET.exe
File Name : ET.exe
Priority : Normal
Expected Windows Version : 4.00
Number of Threads : 6
Creation Date : 15 October 2003
Creation Time : 08:25:42
GDI Objects Used : 22
User Objects Used : 13
Process/Global Count : 65535 / 65535
Memory Used : 19704kB

Module(s) Used By This Process
ET.exe : 65535 ref(s) - 19704kB (E:\Games\ETfull\ET.exe)
ntdll.dll : 65535 ref(s) - 492kB (C:\WINNT\system32
tdll.dll)
ADVAPI32.dll : 65535 ref(s) - 392kB (C:\WINNT\system32\ADVAPI32.dll)
KERNEL32.DLL : 65535 ref(s) - 740kB (C:\WINNT\system32\KERNEL32.DLL)
RPCRT4.DLL : 65535 ref(s) - 440kB (C:\WINNT\system32\RPCRT4.DLL)
WINMM.dll : 65535 ref(s) - 192kB (C:\WINNT\system32\WINMM.dll)
USER32.DLL : 65535 ref(s) - 404kB (C:\WINNT\system32\USER32.DLL)
GDI32.DLL : 65535 ref(s) - 240kB (C:\WINNT\system32\GDI32.DLL)
WSOCK32.dll : 65535 ref(s) - 32kB (C:\WINNT\system32\WSOCK32.dll)
WS2_32.DLL : 65535 ref(s) - 80kB (C:\WINNT\system32\WS2_32.DLL)
MSVCRT.DLL : 65535 ref(s) - 276kB (C:\WINNT\system32\MSVCRT.DLL)
WS2HELP.DLL : 65535 ref(s) - 32kB (C:\WINNT\system32\WS2HELP.DLL)
ole32.dll : 65535 ref(s) - 944kB (C:\WINNT\system32\ole32.dll)
SHELL32.dll : 65535 ref(s) - 2336kB (C:\WINNT\system32\SHELL32.dll)
SHLWAPI.DLL : 65535 ref(s) - 404kB (C:\WINNT\system32\SHLWAPI.DLL)
COMCTL32.DLL : 65535 ref(s) - 528kB (C:\WINNT\system32\COMCTL32.DLL)
opengl32.dll : 002 ref(s) - 796kB (C:\WINNT\system32\opengl32.dll)
GLU32.dll : 001 ref(s) - 124kB (C:\WINNT\system32\GLU32.dll)
DDRAW.dll : 002 ref(s) - 284kB (C:\WINNT\system32\DDRAW.dll)
DCIMAN32.dll : 002 ref(s) - 24kB (C:\WINNT\system32\DCIMAN32.dll)
nvoglnt.dll : 001 ref(s) - 3760kB (C:\WINNT\system32
voglnt.dll)
CLBCATQ.DLL : 001 ref(s) - 536kB (C:\WINNT\system32\CLBCATQ.DLL)
OLEAUT32.dll : 005 ref(s) - 620kB (C:\WINNT\system32\OLEAUT32.dll)
dsound.dll : 002 ref(s) - 344kB (C:\WINNT\system32\dsound.dll)
VERSION.dll : 002 ref(s) - 28kB (C:\WINNT\system32\VERSION.dll)
LZ32.DLL : 002 ref(s) - 24kB (C:\WINNT\system32\LZ32.DLL)
wdmaud.drv : 005 ref(s) - 32kB (C:\WINNT\system32\wdmaud.drv)
msacm32.drv : 002 ref(s) - 32kB (C:\WINNT\system32\msacm32.drv)
MSACM32.dll : 002 ref(s) - 76kB (C:\WINNT\system32\MSACM32.dll)
KsUser.dll : 001 ref(s) - 16kB (C:\WINNT\system32\KsUser.dll)
msafd.dll : 002 ref(s) - 120kB (C:\WINNT\system32\msafd.dll)
wshtcpip.dll : 001 ref(s) - 28kB (C:\WINNT\System32\wshtcpip.dll)
rnr20.dll : 001 ref(s) - 48kB (C:\WINNT\System32\rnr20.dll)
DNSAPI.DLL : 005 ref(s) - 144kB (C:\WINNT\system32\DNSAPI.DLL)
iphlpapi.dll : 003 ref(s) - 76kB (C:\WINNT\system32\iphlpapi.dll)
ICMP.DLL : 004 ref(s) - 20kB (C:\WINNT\system32\ICMP.DLL)
MPRAPI.DLL : 002 ref(s) - 92kB (C:\WINNT\system32\MPRAPI.DLL)
SAMLIB.DLL : 004 ref(s) - 60kB (C:\WINNT\system32\SAMLIB.DLL)
NETAPI32.DLL : 004 ref(s) - 316kB (C:\WINNT\system32\NETAPI32.DLL)
SECUR32.DLL : 004 ref(s) - 60kB (C:\WINNT\system32\SECUR32.DLL)
NETRAP.DLL : 002 ref(s) - 24kB (C:\WINNT\system32\NETRAP.DLL)
WLDAP32.DLL : 005 ref(s) - 168kB (C:\WINNT\system32\WLDAP32.DLL)
ACTIVEDS.DLL : 002 ref(s) - 188kB (C:\WINNT\system32\ACTIVEDS.DLL)
ADSLDPC.DLL : 002 ref(s) - 140kB (C:\WINNT\system32\ADSLDPC.DLL)
RTUTILS.DLL : 005 ref(s) - 56kB (C:\WINNT\system32\RTUTILS.DLL)
SETUPAPI.DLL : 002 ref(s) - 568kB (C:\WINNT\system32\SETUPAPI.DLL)
USERENV.DLL : 002 ref(s) - 392kB (C:\WINNT\system32\USERENV.DLL)
RASAPI32.DLL : 003 ref(s) - 204kB (C:\WINNT\system32\RASAPI32.DLL)
RASMAN.DLL : 003 ref(s) - 68kB (C:\WINNT\system32\RASMAN.DLL)
TAPI32.DLL : 003 ref(s) - 136kB (C:\WINNT\system32\TAPI32.DLL)
DHCPCSVC.DLL : 003 ref(s) - 100kB (C:\WINNT\system32\DHCPCSVC.DLL)
winrnr.dll : 001 ref(s) - 32kB (C:\WINNT\System32\winrnr.dll)
rasadhlp.dll : 001 ref(s) - 20kB (C:\WINNT\system32\rasadhlp.dll)
pbcl.dll : 001 ref(s) - 272kB (E:\Games\ETfull\pb\pbcl.dll)
pbag.dll : 001 ref(s) - 264kB (E:\Games\ETfull\pb\pbag.dll)
pbsv.dll : 001 ref(s) - 616kB (E:\Games\ETfull\pb\pbsv.dll)
ui_mp_x86.dll : 001 ref(s) - 3532kB (E:\Games\ETfull\etpro\ui_mp_x86.dll)
cgame_mp_x86.dll : 001 ref(s) - 58956kB (E:\Games\ETfull\etpro\cgame_mp_x86.dll)
qagame_mp_x86.dll : 001 ref(s) - 36596kB (E:\Games\ETfull\etmain\qagame_mp_x86.dll)
Total Module Memory Used : 104.4MB

Process Thread(s)
Thread 1 Priority : Normal
Thread 2 Priority : Normal
Thread 3 Priority : Above Normal
Thread 4 Priority : Above Normal
Thread 5 Priority : Above Normal
Thread 6 Priority : Normal

Process Heap(s)
Heap List 1 : 26kB, 100 blk(s) Shared
Heap List 2 : 10kB, 1 blk(s)
Heap List 3 : 26kB, 53 blk(s) Shared
Heap List 4 : 253978kB, 25 blk(s) Shared
Heap List 5 : 14kB, 38 blk(s) Shared
Heap List 6 : 759kB, 100 blk(s) Default Shared
Heap List 7 : 10kB, 5 blk(s) Shared
Heap List 8 : 30kB, 100 blk(s) Shared
Heap List 9 : 14kB, 2 blk(s) Shared
Heap List 10 : 46kB, 7 blk(s) Shared
Heap List 11 : 154kB, 58 blk(s) Shared
Heap List 12 : 14kB, 38 blk(s) Shared
Heap List 13 : 354kB, 45 blk(s) Shared
Heap List 14 : 30kB, 6 blk(s) Shared
Total Heap Memory Used : 255468kB

Total Process Memory Used : 373.1MB

File Information
File Size : 1352kB
File Date : 27 September 2003

Performance Tips
Tip 1601 : Program consumes a large amount of memory.
Tip 2 : Double-click tip or press Enter while a tip is selected for more information about the tip.


(Kendle) #4

That’s not true. Hunkusage.dat is a temporary file that gets created every time you load a map. It contains the amount of memory (hunk) used by each .bsp file.
[/quote]
OK, I’ll bow to your superior knowledge on that one :), but is that also true of RTCW, as I’ve always believed this to be the case and have often advised people to delete this file (which I’d always assumed wasn’t temporary by virtue of the fact that it exists after you exit the game).


(colic) #5

Kendle is right as in RTCW that you have to delete that file, or it will constantly just say (dam forgot the word, pending or something like that)

But dont know in ET as I dont play it enough :slight_smile:

Also setting your Virtual memory max and min values the same often helps and indexing services off.

I use 600 max and min at the mo


(chavo_one) #6

I don’t think the file gets deleted everytime you load a map. I have cleaned my etmain of all customs (for mapping), yet my hunkusage.dat still has every custom map listed that I had downloaded.


(Pseudo) #7

Thanks for the help guys. I think I’ve sorted it out - compressed textures. Enabling them (as is default) made it sweet again.

Although I also did the /pb_system 1 thing… so could be a combination of both (pretty sure it’s the textures largely at fault though).


(Rain) #8

FYI:
hunkusage.dat just records the amount of hunk memory used for each bsp (as Lekdevil.NL said)–that information is used to draw the amount complete on the ‘LOADING’ bar (by comparing how much memory is allocated on the hunk vs. how much the map should take.)


(Amadeus) #9

Rain is correct. The hunkusage.dat file is simply a record and has no effect on how much RAM the game uses. You do not need to delete it for a new setting to take effect in either RTCW or WolfET. For best performance in RTCW or WolfET, set your hunkmegs to 75% of the amount of RAM in your PC. This tip was provided by id Software in the README for RTCW.

For example:

If you have 256 MB RAM - set it to 182

If you have 512 MB RAM - set it to 384

If you have 1 GB RAM - set it to 750 (although I doubt the game could use that much)

By default, RTCW uses only 75 MB of RAM. How this is different for WolfET I do not know. There is another concern. With Windows PC’s with 1 GB or more of RAM, some applications will perform less well than if the PC had less RAM. This has been a Windows issue since Win95 that I do not think has ever been changed. I think it is related to how the OS manages memory. Perhaps it will effect WolfET? I hope not.