Logging Mem usage Win Mobile 5?? - Windows Mobile Development and Hacking General

Hi developers!
A Win Mobile 5 question...
I need to log the memory usage per application in the background (to a file), but I can't find the right tool for it. I have a installed a small app called Memory Monitor from HandHeld that logs to a file each time a delta of 10% of available program RAM is detected. This fine, BUT it doesn't tell which applications that consume memory. So what I'd like is a simple tool, no fancy stuff, that quietly logs memory usage on the device for future analysis. Any suggestions?
Thanks!
BR,
Anders

u can use DF Task Manager..it shows the Memory usage as well

Related

Memory usage program

Is there a way to find out much memory each program installed is using ?
the memory program built in only show how much memory is used in total.
do you mean storage or application mem?
application
in the process tab it show what processes are running and their memory usage
http://www.phm.lu/products/PocketPC/TaskMgr/

Running out of memory overnight

Almost 6 MB of memory is being consumed overnight by the services.exe process while the PPC is docked. I start with about 9.5 MB of program memory and the next day I'm down to less than 3.5 MB. Other than Active Sync, nothing else is running.
I have the following processes active:
connmgr.exe
cprog.exe
device.exe
filesys.exe
gwes.exe
NK.EXE
PhotoContacts.exe
Pocket e-Sword.exe
rapiclnt
repllog.exe
sddaemon.exe
services.exe
shell32.exe
sktools.exe
srvtrust.exe
tmail.exe
VoiceCmd.exe
if you are using a cooked rom it could be because of a flaw in ur system
what rom u using
Kill the MS Voice Command. Turn it off from the start up and that alone will save you 5-7megs of ram. Make sure you disable the voice command at the starting item, and reboot. Weather services also seem drain out the memory on a long run.
ROM is latest stock version.
I'm not concerned with apps that are memory hogs, and I use Pocket Plus to fully close tasks.
I'm seeing growth of 6 MB overnight in the process services.exe. (See attached file for detailed list of processes and memory).
I'm starting to disable apps one at a time. I'm suspicious of ActiveSync so I'm starting with it first.
Photo Contacts ain't helping either. Unless they fixed it, I gave that one up last year because of a serious memory leak.
And if you're using MSVC you can definitely get rid of sddaemon.exe, that is for the Cyberon Voice Speed Dial & is what keeps putting the shorcut there in programs after you delete it.
Although the memory usage of shell32.exe is stable, it seems very large (over 10 MB). Is that normal?
basic questions/clarifications
if i may be allowed to ask a couple of questions/clarifications:
1. does it follow/mean that the larger the memory consumption the more it/app drains the battery?
2. does it follow/mean that the higher the cpu usage the more it/app drains the battery
3. what app is that shows the heap? i'm only using task manager 2.9 by dotfred, it shows the memory but no heap.
4. I don’t know if this is a good idea, but anyhow this also came, from a desperate search, for an application that determines, w/c program drains the battery more. Is it possible to log the CPU usage? configurable to log only at every 5,10, 20, 30 sec. I know this would also drain the battery more but if the log, logs the 3 tops most drainers then we could start from there. I hope I'm making myself clear. Thanks and more power…
i hope i'm not off topic..
bump
up up up ...
jmcbride is talking about the amount of allocated memory increasing overnight, rather than the battery consumption. The heap is the list of currently-unused memory locations. When a program needs additional memory, it asks the system for a block of memory of a particular size, and this memory is allocated from the heap. When the program is through using this memory, it should then release the memory back to the heap. The operating system is supposed to combine adjacent free memory blocks, if possible, so that as much memory as possible is available as a contiguous block. This procedure is known as garbage collection. If a program loses track of what memory it is no longer using, without releasing it back to the operating system, the amount of free memory gradually gets less and less. This is known as a memory leak. One application that I have noticed is prone to memory leaks is Mobipocket Reader. If I leave it running for hours, I eventually have to reboot my phone in order to get back the free memory and be able to run commands.

About Memory Leaking

Recently I found something interesting and would like to share here see any Hi-Tech people can make a software to fix the memory leaking in WM OS.
When I first start my machine, my Ram is about 25.5mb and then will drop down to around 24 something mb. I used different software to try to recover as much as RAM including Oxios and eLiAs AutoHibernate.
Recently I start to use Vito GoodWin I found that every time when I use the dialer pad no matter I make or not make a phone call, my Ram will drop down a bit. When I open the GoodWin, I can see the "Phone" is still running. After I close the "Phone" in GoodWin and close GoodWin and back to Today destop. I found that my Ram will go up to 26.6mb. How come? Is it any chance to find out why and may someone can make a software Like Oxios but can take more Ram back.
Hope someone can do it for US. Cheers
memory leakage
hey dude this is not memory leakage actually whenever u run anything on the pocketpc or a cell phone or a computer it uses the resources of the device that is it uses the RAM memory(memory used for running the programs on a computer,pocketpc).
And as it is all the programs,codes,scripts are actually lines and machine codes which get compiled and executed and hence they use the memory of the device to run and hence the RAM memory is used.
For example if u run multiple programs at a time then it drains your RAM memory and hence the result is slow processing of your device hence there is no such way that you can avoid the RAM usage so even when u start your dialer it consumes the RAM do not worry about the RAM usage its normal.
And about the programs you mentioned they are just to shift the memory usage and yet when you start your dialer the specified and required amount of RAM will be used.
To make it more clear for u just go to the task manager of your computer (by pressing alt+ctrl+del all together) and then click on the performance tab
now minimize the task manager and just open a folder or any program and check your task manager the RAM usage might have definitely increased..
Its the same funda with your pocketpc and mobile phones..
its called...ram...basic computing...just like any computer..its shortterm memory used to run programs...the more u open the less u have...maybe u should search up basic computing terms like ram for a further explanation
Memory leaking is real and especially noticeable on windows mobile.
What happens is that memory is allocated for use by programs but then not released when the application is finished doing its job. A combination of complexity and lazy programming is often the cause.
The end result is a gradual drop in available memory, regardless of whether you have any applications still open. The only way to make that memory available is a soft-reset.
Suggest you look carefully at which applications leak the most and avoid them. It can be one or two culprits that you can live without.
My phone (Verizon SMT5800, running Windows Mobile 6 Standard) is bad about memory leaks. I have to reboot it at least once a day to recover memory, sometimes several times in one day. On one occasion, it got down to about 2 MB free and wouldn't even run the reset command. I had to reset it by taking the battery out.
See here and tweak if necessary !! http://msdn.microsoft.com/en-us/library/ms911907.aspx
"soft reset a day keeps the memory hog away"
ayyu3m said:
"soft reset a day keeps the memory hog away"
Click to expand...
Click to collapse
^ Thats the only thing that works for me
autohibernate works really well
SKTools FreeUP RAM
SKTools FreeUP Ram works well. Use it a couple times a day. Eventually have to soft reset though, maybe every couple of days. Have to buy it of course, not free. But it prolongs the duration between soft resets.
The newest SKTools has an additional service for automatic FreeUP Ram, after every app-closing. Just try it
Is there a way to find out which application is causing the memory leak?
I don't think, that there is a real memory leak.
For example Windows Mobile has a file cache which is not filled yet after a fresh softreset. While you use your device this gets filled until the required amount of memory is being used for it.
If more and more memory is consumed each time the dialpad is used, as described, then there is a memory leak. Nothing else can explain that. You should check with your rom chief.
Thanks, works great!
LordDeath said:
The newest SKTools has an additional service for automatic FreeUP Ram, after every app-closing. Just try it
Click to expand...
Click to collapse
I just upgraded my version of SKTools to get the latest FreeUP RAM Service feature. Very nice. Automatically frees unused RAM.
Thanks for the hint.
chigz said:
hey dude this is not memory leakage actually whenever u run anything on the pocketpc or a cell phone or a computer it uses the resources of the device that is it uses the RAM memory(memory used for running the programs on a computer,pocketpc).
And as it is all the programs,codes,scripts are actually lines and machine codes which get compiled and executed and hence they use the memory of the device to run and hence the RAM memory is used.
For example if u run multiple programs at a time then it drains your RAM memory and hence the result is slow processing of your device hence there is no such way that you can avoid the RAM usage so even when u start your dialer it consumes the RAM do not worry about the RAM usage its normal.
And about the programs you mentioned they are just to shift the memory usage and yet when you start your dialer the specified and required amount of RAM will be used.
To make it more clear for u just go to the task manager of your computer (by pressing alt+ctrl+del all together) and then click on the performance tab
now minimize the task manager and just open a folder or any program and check your task manager the RAM usage might have definitely increased..
Its the same funda with your pocketpc and mobile phones..
Click to expand...
Click to collapse
Thanks for the detail reply. Actually what I want to say is after I turn the phone on the ram is start dropping. I just take a sample like after you use the phone the ram would drop about a mb. Of course we know that it is not leaking. My point is after I closed the software and use some software to recover the RAM like Oxios. You can get some RAM back, but my case is when I after make a phone call and turn the dialer pad off. I wouldn't see any software running at task manager also if I use Oxios I just claim about half to one MB RAM back. When I turn GoodWin on in this point I can see the "Phone" still running at GoodWin. I stop the "Phone" at GoodWin and than turn GoodWin off, I found that I could recover 2 - 3mb RAM. That's mean for me is when GoodWin turn this software "Phone" off and could claim more RAM back than Oxios. So could we use the way GoodWin do to make a software claim more RAM back? If you don't get what I say, just try to download GoodWin from the net and try to play around than you can see what happen. Sometime it even make me have more RAM than just after softreset.
ayyu3m said:
"soft reset a day keeps the memory hog away"
Click to expand...
Click to collapse
Are you in NZ? Me too, which city you are? I am in Christchurch.

Enhancing Program Memory

Hi All,
i am a new user to PDA phones. I was using the PointUI home freeware(similar to SPB Home). On turning on the Audio manager, i found the phone becoming slow. The free memory shown was 9.15 MB.I hence uninstalled the PointUI freeware and checked the program memory usage. Even while not any applications,call or msg these are the stats:
Prog Mem: 43.24 MB
In Use: 22.16 MB
Free: 21.08 MB
I would like to know why the In Use memory is taking 50% of the space while NOT running any applications!
and is there any way to enhance the program performance?!!
Apolagize if the question is wierd..just a lay mans' question...
The memory usage is because the OS needs itself to be loaded into memory before you can use the phone. Like in a computer, if you have 1 GB RAM installed, you will not get one GB free when the system boots up. This is applicable to phones as well, it doesn't matter whether its a smartphone/pda or not.
faster GENE!!!
NO guys...u cant make your gene faster by any method even after installing only 1 app!
the fact is when u reboot yr pda the free memory is around 21mb
but as you open applications some of them continue to run in d background.
so use a 3rd party app like 'advanced task manager 0.8' to kill unwanted processes.,.then u will get atleast 12mb free!!
lollll..................
Advanced Task Manager
Hi,
hey is the advenced task manager better than the one provided with the Phone???
If so .. how???? i mean you can see the running processes in the normal task manager too and delete them.....
If its better...then it would be great if you can paste the Download link for it
gshah said:
Hi All,
i am a new user to PDA phones. I was using the PointUI home freeware(similar to SPB Home). On turning on the Audio manager, i found the phone becoming slow. The free memory shown was 9.15 MB.I hence uninstalled the PointUI freeware and checked the program memory usage. Even while not any applications,call or msg these are the stats:
Prog Mem: 43.24 MB
In Use: 22.16 MB
Free: 21.08 MB
I would like to know why the In Use memory is taking 50% of the space while NOT running any applications!
and is there any way to enhance the program performance?!!
Apolagize if the question is wierd..just a lay mans' question...
Click to expand...
Click to collapse
Point UI is a memory hog. it uses up huge memory. Try removing it, it should improve your system's memory usage dramatically. BTW usage of 22 mb is pretty ok.

X10 Memory Leak?

I have noticed behaviour pointing to a memory leak on the X10 - After turning the phone on, I get less and less free memory after running ATK - over 110 MB right after turning the phone on to ~70 MB after 24+ hours.
The phone is heavily modified/customized, so it may not be an SE sw bug (ADW, Smart Keyboard, handcent, k9, etc...)
What's the best process tool you can recommend to look into this?
Let the phone handle the memory. dont worry.
+1 on that. Android its linux based and us meant to work like that. Empty memory is wasted memory.
-------------------------------------
Sent from my X10i
Android may be Linux based, but if *after killing all idle processes* memory is systematically dwindling, that means/may mean that one or more of these processes is allocating memory which it is then NOT being released - either by the process (more probable) or the system itself (less probable).
In other words, for the same set of running processes/applications , the memory usage should *not* systematically go up over time.
Linux itself has no automatic GC. Android does (Dalvik VM), but it takes some care from developers for that to work properly - no "loose" pointers to unused but still-referenced data, etc....
acmbc said:
Android may be Linux based, but if *after killing all idle processes* memory is systematically dwindling, that means/may mean that one or more of these processes is allocating memory which it is then NOT being released - either by the process (more probable) or the system itself (less probable).
In other words, for the same set of running processes/applications , the memory usage should *not* systematically go up over time.
Click to expand...
Click to collapse
I disagree, as processes are used/exercised the kernel will allocate the memory they need, after switching on the phone the processes are idle and occupy a small amount of memory. As they are used the process size will grow in main memory as they store or cache common data used by the process. That is why applications such as facebook may be slower at start off as the data needs to be supplied, once this data is cached it will run much faster as the data is already in main memory.
Linux/Android works on the principle that it's a waste not to use as much memory as possible.
Not to get into a GC flame war here: The principle you mention is right, its just that after one KILLS these processes (facebook for example) ALL OF the memory allocated by facebook should be relinquished to the system (ergo, appear as free).
I.e. if I start up my phone, and just have processes A B and C running and have lets say 120 MB free, and after using the phone for a while kill everything and *restart* ONLY processes A B and C, then I should have 120 MB free. At least tendentially (may have a different set of resident libs at the 1st and 2nd points in time, some other minor stuff may be different, etc..). However, I find that doing this over and over results in less and less free memory being available as time passes.
I am not saying I am *right* but a good process inspection tool would help to ascertain what is going on.
acmbc said:
Not to get into a GC flame war here: The principle you mention is right, its just that after one KILLS these processes (facebook for example) ALL OF the memory allocated by facebook should be relinquished to the system (ergo, appear as free).
I.e. if I start up my phone, and just have processes A B and C running and have lets say 120 MB free, and after using the phone for a while kill everything and *restart* ONLY processes A B and C, then I should have 120 MB free. At least tendentially (may have a different set of resident libs at the 1st and 2nd points in time, some other minor stuff may be different, etc..). However, I find that doing this over and over results in less and less free memory being available as time passes.
I am not saying I am *right* but a good process inspection tool would help to ascertain what is going on.
Click to expand...
Click to collapse
Wrong.. it should NOT be returned to the system.. but it should be marked as "disposable" IF another process wants to use it. That is the way linux usually do.. That is why the "Free"-value is misleading. As the "Free"-value is not the sum of "Free" and "Cached" values. when you "unload" a lib it is not completely removed from memory, it is just marked as "cached" instead. Saving tremendous ( ) amount of battery and time when, if, the user wants to use it again before overwritten by another memory-hungry application..
Regards // OwL
does all this mean we don't really need advanced task killer?
or does the advanced task killer kill the cpu process? ( as a result longer battery life)
robbyf66 said:
does all this mean we don't really need advanced task killer?
or does the advanced task killer kill the cpu process? ( as a result longer battery life)
Click to expand...
Click to collapse
advanced task killer kills the application itself, so that nothing more is executed by that application thread(s). wether dependent libraries are kept loaded or not does not affect battery time when not used. Advanced task killer does not actually unload any libraries it only kills the process.
I personally hardly never use advanced task killer, as it is not needed as long as you make sure to run applications that does not keep the phone from going into sleepmode. Those programs are just simply bad coded.. I instead have a CPU-meter application in the task-bar and if I see that the CPU-time is extensivly used after the application has been put to background, then I might use a taskkiller to stop the bad application. But that scenario is rare... I usually get 50h+ of battery time per charge, whatever I do with it.
Regards // OwL

Categories

Resources