Maximizing the dynamic (program) RAM memory by dragging the memory slider
By Werner Ruotsalainen, Submitted Friday, November 11, 2005
Topics:
http://smartphonemag.com/forum/topic.asp?TOPIC_ID=18446
UPDATE (06/17/2006): in the meantime, a new registry hack has been revealed to do this stuff - much easier than before. Just create an empty key (NOT value! Key!) named NeverDorkMemory under HKCU\ Software\ Microsoft\ Shell\ and soft reset your device. Note that, unlike what some people state, it's usable on pre-WM2003 Pocket PC's too. Therefore, the following tutorial is deprecated. I, however, keep it for historical purposes. Q: Help! I can't maximize the dynamic (program) RAM memory (so that my memory-hungry applications are given the largest possible RAM to run) by just dragging the memory slider to the far left. It's always re-centered – what do I wrong? A: Do this the following way: leave at least one-sixth (16.666%) of the current RAM for the static (storage) RAM area. This is true of all the pre-WM5 Pocket PC operating systems – I checked it on all of my pre-WM5 devices (the PPC2k E-125, the PPC2k2 iPAQ 3660, the WM2003 iPAQ 2210 and the WM2003SE Pocket Loox 720). To do this, just add the two "free" values and divide it by 6 (that is, multiply it with 0.166666). After this, try to set a value on the slider that is a bit bigger than this. The resolution of the slider isn't infinitively high – it moves at about 0.3Mbyte blocks on 64+ RAM devices if you drag the slider with the stylus; therefore, after you've dragged the slider to a close position, you may want to bring up the on-screen keyboard and use the left and right arrows (in the bottom right) to be able to do the fine-tuning. An example of doing this: In the following example, I have 84.57 Mbytes of free RAM (the advantages of a 128M RAM Pocket PC...). Now for the math: 84.57 divided by 6 is 14.095; this means you must leave at least around 14 Mbytes of RAM dedicated to storage memory in order for the system not re-center it again. I've chosen the static RAM size to be 14.41Mbyte, which is indeed more than the one-sixth of the entire free RAM: click here for the screenshot If, on the other hand, I had chosen 13.85Mbytes, as in the following screenshot: click here for the screenshot the operating system would have recentered the slider in a second or two. Another example, with my iPAQ 2210: I have exactly 21M free RAM. 21/6 is 3.5 Mbytes. On the next screenshot, I've set it to 3.68M, which is larger than 3.5 Mbytes. It works OK: click here for the screenshot Should I have chosen the something slightly lower, example, 3.16 Mbytes, the slider would have returned to the center position at once. Please note that after doing this, if you do put a file on your PDA in the storage (static) RAM (for example, install something on it, or just ActiveSync synchronizes some new Outlook mail on it), and the one-sixth rule, therefore, will not be valid any more, the slider will be automatically re-centered. If, on the other hand, you just fill in the dynamic memory (with starting tons of programs), which only decreases the dynamic memory, the slider won't be re-centered. Note that you can't just tell the oprating system 'from now on, only provide 16.666% of the entire free RAM to the storage memory'; you can only force it to give it a pre-defined size of memory. This isn't particularly flexible, but, unless you don't put new files in the storage RAM and set the slider based on the free memory size computed when the dynamic memory was entirely free (for example, right after a soft reset, without starting anything), will work on the long run, without having to re-position the slider. Therefore, if you want to give your programs as much dyamic memory as possible and you've already done everything to free up RAM by relocating relocatable files/cache memories (please see the other relocation tutorials here in the Relocation tutorials/hacks section and, till it's completely transferred to the blog, the relocation articles over at Windows Mobile Technology) and deleting unnecessary files/PIE and other cache memories, and also want your setting as durable as possible (so that you don't need to reset the slider every hour or so), you must do the following: kill all memory-hungry applications (by, for example, resetting your device), do the math and set the slider. Then, because you've set the slider when the free dyamic memory was as large as possible (meaning dynamic memory just can't be bigger, which would result in the 16.666% rule failing), the slider won't be automatically re-centered. For tech geeks that would, for example, write a resident, always-running service to dynamically keep the slider in the leftmost possible position, depending on the current dynamic memory: I've done some more research into the subject of where the slider value is stored. Its value (as opposed to what many say on PPC forums) is retained between soft resets. It's, however, not stored in the Registry/system databases. This means it's stored in RAM, in a (durable, meaning it's not cleaned up during a soft reset) system variable. Therefore, it's pretty hard to access because, as far as I know, Microsoft hasn't documented where this variable exactly is. (BTW, to my knowledge, the 1/6 rule is another tip never before published by anyone.)- Werner Ruotsalainen's blog
- Login to post comments
Printer-friendly version



