Log in

View Full Version : Details of The "NeverDorkMemory" Registry Key Revealed


Raphael Salgado
04-12-2006, 01:00 AM
What started out as a <a href="http://forum.xda-developers.com/viewtopic.php?t=45113">quick forum post</a> spread across other boards and spawned discussions on what the ominous "NeverDorkMemory" registry entry was really all about. Due to the lack of explanation (or an overly-technical one at that), the near timing of April Fools' Day, and the funny-sounding name, many thought it was a joke, while others swore that it helped out as an automatic memory defragmenter on their Pocket PCs. Initially Googling the term "NeverDorkMemory" when it first surfaced only revealed that same initial forum post and some other obscure link of a page in another language. I decided to get as close to the source as possible to find out the meaning of "NeverDorkMemory" and got a detailed response from none other than Mike Calligaro of the popular <a href="http://blogs.msdn.com/windowsmobile/">Windows Mobile Team Blog</a>.<br /><br /><img src="http://www.pocketpcthoughts.com/images/web/2003/salgado_neverdorkmemory.jpg" /><br /><br />Mike responds, <i>"I'm a bit embarrassed that we actually have a registry key with the word 'Dork' in it. I don't know what that developer was thinking. That key should have no effect on WM5. It was used on pre-WM5 PocketPCs that had a memory slider. The memory slider allowed you to determine how much memory was used as RAM and how much was used as Storage. However, as storage and RAM were consumed, the OS used to adjust the slider on its own (it basically tried to keep the amount of free RAM equal to the amount of free storage). In the vernacular of some dev who thought he was being clever, this was called 'Dorking' the memory. NeverDorkMemory disabled that automatic adjustment to the memory slider. It was generally believed that automatically adjusting the slider was the right thing to do, so we didn't make the key something configurable through the UI. Persistent storage means that we don't spend RAM on storage anymore, so there's no longer a need for the slider. With the slider gone, NeverDorkMemory shouldn't have any effect. I've had a few people ask where the slider went, so I was planning to write an entry explaining why it's gone..."</i><br /><br />So, there you have it. What turned out to be a pre-Windows Mobile 5.0 registry entry became the "placebo effect" for those who claimed better handling of their device's RAM. At least it has no detrimental effects, so don't feel like a dork ;), since this is how we've usually find out many little goodies that Microsoft or the ODM inadvertently (or intentionally) hides from us. Of course, if you have a Windows Mobile 2003SE or previous version and wish to take advantage of this registry entry to control memory management on your own, then follow the instructions in the link provided above.

Ed Hansberry
04-12-2006, 03:56 AM
Thanks for the explanation. Personally, I am going to try HKLM\Software\Microsoft\Shell\NeverDorkTheUninstallProcess on my WM5 device and see if that helps with the "unable to uninstall" errors. :?

I wonder if HKLM\Software\Microsoft\Shell\PutInADorkingClosebutton will help? :wink:

Nurhisham Hussein
04-12-2006, 04:07 AM
Sorry for the unproductive post, but:

:lol: :lol: :lol:

nosmohtac
04-12-2006, 07:13 AM
Wow! This is great info. I've been waiting for this information ever since PPC first started "dorking" the memory slider on me. Thank you for the great registry hack.

dMores
04-12-2006, 11:22 AM
i can't understand why the microsoft guy was so embarrassed about this registry key, it's nice to find the occasional easter egg in programs.

i once had to design a button for a large austrian airline (;)), and in the process i me and the other guys in the department were joking around, and i created a button with a typ-oh on purpose. instead of "passagier streichen" (delete passenger) it said "passagier streicheln" (stroke passenger).

we all had a laugh, up until the point where we saw my joke-button actually being online on the live site.

well, that was funny too, and we took it down right away.
but still, there were about 5 customer "complaints" about the error, some just mentioning a spelling mistake, others being real pissed about our "inappropriate" naming of the button.

well, it's still funny when i think about it :)

oh yes, we also sent out a test-newsletter by accident (that was another dept., by the way) that contained "blah blah blah" and "this newsletter is so cool" as well as a side-swipe at the competition. even though the sending of the newsletter was cancelled pretty quickly, it reached about 2000 subscribers.
we had a sh*tload of complaints after that as well, hehe :)

jngold_me
04-12-2006, 11:26 AM
I am going to try

HKLM\Software\Microsoft\Shell\GetRidOfAKU2StupidBatteryMeterInTaskBar
DWORD = GiveMeBackMyTime

Ed Hansberry
04-12-2006, 12:42 PM
I am going to try

HKLM\Software\Microsoft\Shell\GetRidOfAKU2StupidBatteryMeterInTaskBar
DWORD = GiveMeBackMyTime

Huh? the clock on AKU2 is just moved above the Name line on the Today Screen and you can put the time back in the bar for all other apps. Start|Settings|System|Clock|More and check the box.

I actuallly like the fact that on the Today Screen, the little battery pops up there. I only wish it was more detailed, maybe having a bar for every 20% instead of the two 50% bars.

Jonathan1
04-12-2006, 02:12 PM
So if I create that key in WM2003 will memory allocation FINALLY do what I tell it to do?
:roll:

jngold_me
04-12-2006, 02:37 PM
I am going to try

HKLM\Software\Microsoft\Shell\GetRidOfAKU2StupidBatteryMeterInTaskBar
DWORD = GiveMeBackMyTime

Huh? the clock on AKU2 is just moved above the Name line on the Today Screen and you can put the time back in the bar for all other apps. Start|Settings|System|Clock|More and check the box.

I actuallly like the fact that on the Today Screen, the little battery pops up there. I only wish it was more detailed, maybe having a bar for every 20% instead of the two 50% bars.

The battery indicator is useless. Now in order to have the date and time I need to take up valuable space by using the date plug-in.

I think you just might be a minority (someone who actually likes the battery meter covering what used to be the date and/or time in the task bar:

http://forum.xda-developers.com/viewtopic.php?t=45784

Here's someone working to mask the battery icon and replace with Date/Time:

http://forum.xda-developers.com/viewtopic.php?t=45084&amp;postdays=0&amp;postorder=asc&amp;start=25

lapchinj
04-12-2006, 05:21 PM
So if I create that key in WM2003 will memory allocation FINALLY do what I tell it to do?
:roll:
Yeah, it did for me :crazyeyes:

Jeff- :rotfl: :rotfl: :rotfl:

Gerard
04-12-2006, 05:34 PM
So if I create that key in WM2003 will memory allocation FINALLY do what I tell it to do?
:roll:

Yes, this added key will allow a user to move the memory slider to almost any position and have it 'stick.' Yesterday I added it to my WM2003SE Toshiba e800, then soft reset, then moved the memory slider to 77MB Program, 14MB Storage. Though it seemed to stick at just 9MB Storage, this was smaller than I'd want. After about 2 hours of use and several soft resets, the position of the slider has not moved.

Obviously one must keep on top of things like the Pocket IE cache... but this is a level of control is something I have wanted, badly, for almost 6 years. I am angry that Microsoft's arrogance has prevented users from disabling their 'dynamic memory allocation' nonsense for so long. I have complained about this many times in forums which I know are being monitored by people on the mobile devices development team, but this solution has never been offered. They knew, but did not offer help. In fact I have twice seen different Microsoft representatives state plainly that this 'feature' was not possible to disable, that it was hard-wired into the OS. What a load of crap. They should be ashamed of their bad behavior, not of the silly name of the key.

Now, what about a hack for disabling the auto-closure of 'excess' application windows? I have several times lost data thanks to that utter foolishness, as windows started shutting down even with over 40MB of free RAM. I've had this happen on an iPAQ 3835, a Dell X5, and on this e800 - though the latter has always at least 70MB of free RAM. This is unacceptable!

So, is there a 'NeverDorkWindowCount' key tweak? Anyone with an inside line to Mike Calligaro or other MS reps able to get an answer? I'm sure thousands would like to know.

DaViD_BRaNDoN
04-13-2006, 12:30 PM
Thanks for the explanation. Personally, I am going to try HKLM\Software\Microsoft\Shell\NeverDorkTheUninstallProcess on my WM5 device and see if that helps with the "unable to uninstall" errors. :?

I wonder if HKLM\Software\Microsoft\Shell\PutInADorkingClosebutton will help? :wink:
Haha.. *LOL*... :mrgreen: ... Sorry, but again, haha... *LOL*... :mrgreen: :mrgreen: :mrgreen:

ctmagnus
04-16-2006, 03:42 AM
I wonder what NeverDorkSwapFile would do on desktops?

buckyg
04-16-2006, 05:20 AM
This thread has been really humorous but also very helpful. It fixed one of my major annoyances with PPC's in general. Yeah, there are others, and I wish some of the suggestions made in this thread would work :wink:

Menneisyys
05-23-2006, 10:19 PM
So if I create that key in WM2003 will memory allocation FINALLY do what I tell it to do?
:roll:

Well, up to now, it also did the same. I've explained the secrets of how this can be achieved (http://www.pocketpcmag.com/blogs/index.php?blog=3&amp;p=262&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1) a long ago.

Menneisyys
05-23-2006, 10:26 PM
Obviously one must keep on top of things like the Pocket IE cache... but this is a level of control is something I have wanted, badly, for almost 6 years. I am angry that Microsoft's arrogance has prevented users from disabling their 'dynamic memory allocation' nonsense for so long. I have complained about this many times in forums which I know are being monitored by people on the mobile devices development team, but this solution has never been offered. They knew, but did not offer help. In fact I have twice seen different Microsoft representatives state plainly that this 'feature' was not possible to disable, that it was hard-wired into the OS. What a load of crap. They should be ashamed of their bad behavior, not of the silly name of the key.

Strange not even they did know about how really the slider works (see my just-linked article). Essentially, you could have a staticably settable slider before publishing this "dork" stuff if you didn't exceed the 5/6 vs. 1/6 ratio. Strange MS hasn't ever old about this anyone - probably only some of their programmers knew of it (and I when I found it out and, then, published).



Now, what about a hack for disabling the auto-closure of 'excess' application windows? I have several times lost data thanks to that utter foolishness, as windows started shutting down even with over 40MB of free RAM. I've had this happen on an iPAQ 3835, a Dell X5, and on this e800 - though the latter has always at least 70MB of free RAM. This is unacceptable!

That's because of the 32-process restriction of Windows Mobile, independent of the size of the free RAM.

Gerard
05-23-2006, 11:37 PM
I wonder what NeverDorkSwapFile would do on desktops?

Various XP speed tip documents I've found point to the swapfile as being a major source of fragmentation of the hard drive. They all agree that the simplest solution is this: set the initial and maximum pagefile values to match, at a high enough value that the system will be unlikely ever to need a greater maximum. This is done like this:

Select System icon from the Control Panel - Performance and
Maintenance, select Advanced Tab, select Performance areas, and click
on Settings Under virtual Memory click Change. The Initial and
Maximum size should be equal otherwise Windows will keep resizing the
file. The optimal memory setting for users with 128 MB+ is
approximately 1.5-2 times the RAM size, users with 64 MB should use a 2 times multiple.

That's quoted from this tip sheet:
http://www.techbargains.com/hottips/hottip12/index.cfm

I've found minimal fragmentation owring to normal use of video encoders and other high-intensity applications, on an ancient PIII running a stripped down version of WinXP, a 6GB hard drive, and 192MB of RAM. I use Power Defragmenter about once a month, which takes less than an hour to complete.


As for Menneisyys' claim that his writing of the 1/6th rule is the first anywhere... well, pat yourself on the back M, as always. You do some nice work, are a very diligent enthusiast around PPC problems and finding their solutions. In this case, many forum members found and published this particular finding as early as the winter of 2000/2001, but you go right ahead and take credit for it. Most of those forums have long-since vanished anyway... with PocketPCPassion disappearing not once but twice, and Brighthand's archives now being buried and/or lost due to mismanagement of the date during the ownership swap, PDAbuzz being something of a joke, etc.. Remember when JimmyDoom came out? That's about the time we started needing to know how far the RAM slider could go and stick, without bouncing back. Lots of people tested it, lots reported on it, far too many to remember. But you put it into a formal document and re-stated it over and over again, so it's yours, keep it. &lt;/sarcasm>

Truly, I am happy to see your untiring (do you actually have time for anything like a life, or work?) efforts on behalf of the entire community. The value you add is tremendous. But the ego.... it sometimes grates. As in the current case; your 1/6th solution is not the same thing as the NeverDorkMemory fix. Having moved that slider to the left not hundreds, but thousands of times since the year 2000, I can tell you with perfect confidence that even without writing large files to RAM the slider does, eventually, jump to a mddle value all by itself. That's because of memory leaks, leftover consumed RAM even when completely closing applications (using GigaBar, or more recently WisBar Advance, or ZapIt, or whatever else I've used for that job), and just the general sloppiness of the various PPC OS versions. Sooner or later, usually sooner, the slider would jump back, even on the Toshiba e800 I'm using now.

So the NeverDorkMemory key was a godsend, for me. I've set the slider at 20MB of Storage Memory a couple of months ago, and though I've checked several times, and soft reset hundreds of times since, I've not yet seen it move. The value was even preserved through two hard reset/restore cycles using Sprite backups. I don't write large files to RAM. That's what my SD card is for. (And counter to your statements elsewhere about downloading in Pocket IE to an SD being slow, I've never seen that, nor with Netfront, nor with WinMobile Torrent, nor with any FTP client.) I have over 75MB of free Program Memory after every soft reset. It's great. Never could have that before, using just cautious movements of the memory applet's slider.

Still, yours is a good tip. One every beginner should know. Thanks for publishing it. And thanks especially to the HTC Hacks guys who figured out, and embarrassed Mike Calligaro into admitting to, the NeverDorkMemory hack, which is plainly more reliable.

Menneisyys
05-24-2006, 07:06 AM
And counter to your statements elsewhere about downloading in Pocket IE to an SD being slow, I've never seen that, nor with Netfront, nor with WinMobile Torrent, nor with any FTP client.)

Compared to downloading to RAM, it can be pretty slow if you download more than a few hundred kilobytes over a fast connection, particularly with some FTP clients, not only with PIE. In all the benchmarks I've made (with several different PPC's and severeal, in general, heavily optimized cards) this turned out to be the case.

This is why I recommend downloading into RAM whenever possible if download speed is of extreme importance (because, for example, you need to move out of a Wi-Fi zone as soon as possible and/or don't want to spend much time downloading / want to have the files as soon as possible).

Have you also made some benchmarks (downloading at non-GPRS/phone line analogue modem speeds)? Did RAM download prove to be no faster than storage card-based download?

Gerard
05-24-2006, 08:44 AM
Checking a 3MB download (3 JPG files) using Resco's FTP plugin, I find RAM exactly 3 times faster than to a PNY 1GB SD card, formatted in FAT16, with 16KB clusters. Yes, RAM is faster. Still, 87 seconds (Wk-Fi, DSL, Symbol CF card, D-Link AP, about 3metres range with a bed and a floor between)) for 3MB doesn't seem excessively slow. In your articles and forum postings you've made it seem that downloading to SD cards was intolerably slow. I just downloaded a 24MB MOV file (video of a robotic glass-climbing gecko developed at Harvard) in PIE, to that SD. I was also doing email stuff, and reading some forum postings, with no noticeable slowdowns. The download took a little over 7 minutes. I'm never in a bigger hurry than that. Dialup would have taken hours.

Menneisyys
05-24-2006, 09:35 AM
Checking a 3MB download (3 JPG files) using Resco's FTP plugin, I find RAM exactly 3 times faster than to a PNY 1GB SD card, formatted in FAT16, with 16KB clusters. Yes, RAM is faster. Still, 87 seconds (Wk-Fi, DSL, Symbol CF card, D-Link AP, about 3metres range with a bed and a floor between)) for 3MB doesn't seem excessively slow. In your articles and forum postings you've made it seem that downloading to SD cards was intolerably slow.

Well, I've pointed out in a lot of forum posts (just like above) that there may be cases when download speed does count (the fastest/quickest transfer as possible), but, in general, you aren't forced to RAM only if the (slightly, or, with some clients, radically) decreased speed isn't a problem. It all boils down to personal preferences/ the current circumstances.

(BTW, here're the two latest download benchmarks if anyone interested in the quantitive results: The latest FTP client benchmarks (http://www.pocketpcmag.com/blogs/index.php?blog=3&amp;p=508&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1); HTTP download comparison (http://www.pocketpcmag.com/blogs/index.php?blog=3&amp;p=466&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1).)