Hi. I'm very new to windows mobile 2005, and am very confused as to what Ramdisk, pagepool and program memory is. I understand that on top of all that, there is still extended ROM? I'm familiar with extROM from my wm2003SE time, but the persistent storage part of wm2005 has really made me jumbled up. Can someone help shed some light on this please? Thank you.
in 2005 all ram is for applications like on a pc
in 2003 ram is deviced between storage and application ram
ramdisk is using application ram as storage because himalaya's dont have much flash
in 2005 storage is flash
page pool is technical terms for how memory is used
basicly it means that if you let memory be used in larger blocks
it's faster but they use more mem
Thanks for the reply Rudegar. Are there any versions of WM5 now that allows the use of the full 128 MB of RAM that the Himalaya has? I've used C Shekhar's version that makes use of only 64 MB of RAM, and I find that I'm running out of space when installing certain applications that need to be installed on the main device instead of on Storage Card.
if no ramdisk is used all 128MB is application mem
if as it sounds like all 128MB was set to ramdisk for storage
is what you want then no applications would be able to run
at all
best bet is getting a larger ramdisk but some applications may not work if the ramdisk is too big
Thanks Rudegar. So, if I equate it to a computer, Ramdisk is the C drive where the operating system (and any other programs that is cooked in the ROM to be installed) are installed in, am I right?
Or is it the other way round, where Ramdisk is the memory that is used when an application starts up?
Is there a wiki page about this, that explains what ramdisk, pagepool and program memory?
Thanks again for all the replies!
Confusing indeed. Anyway, a RAMDisk is like a disk drive in your PC that you can store stuff in it. It look like a disk, although it is actually using your PC's RAM to store information. Rebooting/power-off your PC will erase everything in the RAMDisk.
So, from what I can understand, part of the Himalaya's RAM is used to make RAMDisk, which you can use to store files, install programs, etc, like the disk drive on your PC. While `Program memory` is like the RAM of your PC where software store their stuff temporary. Since both of this `RAMDisk` and `Program memory` uses the same physical memory, their size is inversely proportional to each other (eg large RAMDisk means small Program memory).
As for Page Pool.. this is a bit weird. From what it seems, this page pool is more like swap file to me (eg the virtual memory of Windows). From other pages, it seems that PagePool+RAMDisk = 64MB.
ram used to be controled by a slider in mem settings to deside what was used as you use pc ram and what was used for "hardisk"
real 2005 devices use flash storage for the "harddisk" part
and all their memory is like pc ram
non nativ 2005 devices like himalaya
dont have much storage so peopled made a program which would
use the memory as a "harddisk"
this mean that there is less memory "pc ram"
when ramdisk is used
here is some info about what a ramdisk is
http://en.wikipedia.org/wiki/RAM_disk
Is there any version of win2005 without ramdisk and bigger pagepool like 40mb or something like that. Or is it possible to make windows like that because I have big memory card and don't need the ramdisk and don't use it?
Can anyone direct me to a guide somewhere?
I'd like to make an ext partition? Or would I? Is Swapper 2 just as fast? Tradoffs? Anyone run into their sd card wearing out yet?
bueler?
The message you have entered is too short. Please lengthen your message to at least 10 characters.
The consensus seem to be "do not use" except as 'last resort', and only needed on phones with 256MB or less of mem.
I wrote this, and I am waiting for a technical review from some experts in this field.
http://forum.xda-developers.com/showthread.php?t=897823
kschang said:
The consensus seem to be "do not use" except as 'last resort', and only needed on phones with 256MB or less of mem.
I wrote this, and I am waiting for a technical review from some experts in this field.
http://forum.xda-developers.com/showthread.php?t=897823
Click to expand...
Click to collapse
I have 256MB ram
At the moment, Compcache is good enough, but I can't help but wonder how much better it could be with swap instead of Compcache.
edit: "For example, If you have a 256MB system (shows as 262MB due to 1024 vs. 1000 KB size difference) and have 130MB of apps and data/cache loaded, then that leaves about 130MB for the system to actually RUN programs. That sounds like a lot, but in reality that is not enough, since the system itself takes 50-80MB, and services will take up another 30-50MB, leaving almost nothing. "
quick review, you don't appear to be differentiating between RAM and Flash? Having more apps installed shouldn't increase RAM usage at all. Unless I gravely misunderstand the Android OS, if I install a new program, it resides in the system flash, not the RAM, until I run it, at which point it gets loaded to RAM. When the system needs memory and no swap or Compcache is in use, it writes the state of the application to the flash and removes it from RAM.
What the swap does is similar to what compcache does-- compresses apps that are currently in RAM, and moves them to the swap space. In the case of Compcache, this is in the RAM. But since you're compressing it, background apps don't take nearly as much RAM, and you get an app switching speedboost because the processor can uncompress the compcache'd program, "move" it to RAM, compress the currently running program in RAM, and "move" it to the compcache. Forgive me if you already said this, I can't read the entire thing at the moment.
As for swap, I'm not sure if the processor compresses before going to the hard swap file, I don't think that it does-- when android starts getting low on RAM, it moves what was in RAM, to the swap on the SD-card. Since it does this when the system is low on RAM, and not when the system runs out of RAM, you never notice it. Reading the app back from the SD card happens almost instantaneously, because the sd cards can be read from at a speed of at least 20MB/s, maybe more. When you're restoring an app to RAM, 20MB/s is plenty.
edit2: I'm sorry but this guide is too vague to be anything more than moderately informative. Comments like:
-"CompCache, or "compressed cache", is handled by the Linux kernel. It takes a portion of your memory, and use it as a cache space, but compressed. By using on-the-fly compression it is able to make your memory appear to be a bit larger than it actually is. However, the result is slower performance.
This is usually NOT tweakble without mod ROM such as Cyanogen Mod. The kernel also must support this feature, and not all do. This also slows your phone. "
-"...swap space by either creating a swap file or a swap partition. This adds a lot of read/write action to your SD card and may substantially decrease its usable life."
-"This really slows your phone."
People wouldn't be doing these things for no reason. Compcache does not "make your memory appear a bit larger", when it at least doubles the amount of usable RAM-- when you allocate 60MB, if you average 75% compression (I usually see between 65% and 80%), do you know how much RAM this effectively nets you? Over at least 60MB extra, usually about 80! So my phone goes from having 256MB ram to having 340 effectively. Having your processor overclocked minimizes any slowdown from the compression/decompression; I haven't noticed any slowdown, and having the "extra" RAM definitely has made my phone more able to multitask.
You basically discourage users from doing ANYTHING like swapping, compcaching, etc to their phone, saying it "slows it down" and "can substantially decrease your SD Card's life". My experience has been otherwise regarding slowing it down, and regarding the SD card, the only part that would actually go bad is the swap partition. If you put that at the end of the drive, when it goes bad, you'll know, and you can just move the partition back 300MB and put your 300MB swap there. We haven't heard of any users' cards going bad from this yet. Also, if you have a class 6+ SD Card, they implement wear leveling on the card, so you don't need to worry about wearing out any individual bits.
Sorry, I'm just not digging it.
rancur3p1c said:
I have 256MB ram
Click to expand...
Click to collapse
Me too, me too...
At the moment, Compcache is good enough, but I can't help but wonder how much better it could be with swap instead of Compcache.
Click to expand...
Click to collapse
So try it. With CM612, I have CompCache AND Swap (through Swapper2 / 128 MB) turned on. It slows down every once in a while but my programs don't crash any more.
edit: "For example, If you have a 256MB system (shows as 262MB due to 1024 vs. 1000 KB size difference) and have 130MB of apps and data/cache loaded, then that leaves about 130MB for the system to actually RUN programs. That sounds like a lot, but in reality that is not enough, since the system itself takes 50-80MB, and services will take up another 30-50MB, leaving almost nothing. "
quick review, you don't appear to be differentiating between RAM and Flash? Having more apps installed shouldn't increase RAM usage at all. Unless I gravely misunderstand the Android OS, if I install a new program, it resides in the system flash, not the RAM, until I run it, at which point it gets loaded to RAM. When the system needs memory and no swap or Compcache is in use, it writes the state of the application to the flash and removes it from RAM.
Click to expand...
Click to collapse
At first I thought the same way you did, until I started looking in "diskusage".
According to diskusage, there is no separate RAM. 256MB is 256MB. App storage is where everything goes, and what's left is used to load services and such. The numbers I added up matches. I have 256 MB phone. 100 is for apps, which leaves about 150-160. System itself takes 50-80 (acore, gapps, phone, system...) then add a few services and you're down to 30-40 MB free to actually run the programs. The numbers seem to match up to what's shown at the bottom of "Manage Services".
I know it's weird, but perusal of Android developers kit doesn't contradict this understanding.
What the swap does is similar to what compcache does-- compresses apps that are currently in RAM, and moves them to the swap space. In the case of Compcache, this is in the RAM. But since you're compressing it, background apps don't take nearly as much RAM, and you get an app switching speedboost because the processor can uncompress the compcache'd program, "move" it to RAM, compress the currently running program in RAM, and "move" it to the compcache. Forgive me if you already said this, I can't read the entire thing at the moment.
As for swap, I'm not sure if the processor compresses before going to the hard swap file, I don't think that it does-- when android starts getting low on RAM, it moves what was in RAM, to the swap on the SD-card. Since it does this when the system is low on RAM, and not when the system runs out of RAM, you never notice it. Reading the app back from the SD card happens almost instantaneously, because the sd cards can be read from at a speed of at least 20MB/s, maybe more. When you're restoring an app to RAM, 20MB/s is plenty.
edit2: I'm sorry but this guide is too vague to be anything more than moderately informative. Comments like:
-"CompCache, or "compressed cache", is handled by the Linux kernel. It takes a portion of your memory, and use it as a cache space, but compressed. By using on-the-fly compression it is able to make your memory appear to be a bit larger than it actually is. However, the result is slower performance.
This is usually NOT tweakble without mod ROM such as Cyanogen Mod. The kernel also must support this feature, and not all do. This also slows your phone. "
-"...swap space by either creating a swap file or a swap partition. This adds a lot of read/write action to your SD card and may substantially decrease its usable life."
-"This really slows your phone."
People wouldn't be doing these things for no reason. Compcache does not "make your memory appear a bit larger", when it at least doubles the amount of usable RAM-- when you allocate 60MB, if you average 75% compression (I usually see between 65% and 80%), do you know how much RAM this effectively nets you? Over at least 60MB extra, usually about 80! So my phone goes from having 256MB ram to having 340 effectively. Having your processor overclocked minimizes any slowdown from the compression/decompression; I haven't noticed any slowdown, and having the "extra" RAM definitely has made my phone more able to multitask.
Click to expand...
Click to collapse
It also seriously depends on your SD card. I've read reports on Phandroid that said class 6 or 8 microSD cards would provide almost lag-free swaps, but that's on a G1 (which is already a slow phone).
You basically discourage users from doing ANYTHING like swapping, compcaching, etc to their phone, saying it "slows it down" and "can substantially decrease your SD Card's life". My experience has been otherwise regarding slowing it down, and regarding the SD card, the only part that would actually go bad is the swap partition. If you put that at the end of the drive, when it goes bad, you'll know, and you can just move the partition back 300MB and put your 300MB swap there. We haven't heard of any users' cards going bad from this yet. Also, if you have a class 6+ SD Card, they implement wear leveling on the card, so you don't need to worry about wearing out any individual bits.
Sorry, I'm just not digging it.
Click to expand...
Click to collapse
Constantly reading and writing the file will cause that area to get much heavier use and eventually cause it to fail the bootup "checking SD card". The only question is how much life is taken away.
I am running my Droid on 24% CompCache AND 128MB Swap right now. Occasional lag but otherwise runs quite well. It's also overclocked to 1.2 GHz with P3Droid's kernel. So I do practice somewhat of what I preach...
so if I have 512MB of ROM, and 256MB of RAM, and I fill up my ROM with programs, how much RAM do I have?
I don't follow how what you said can be.
SD Card writes-- SanDisk guarantees theirs for 100K writes to any given sector...that's good enough for the swap to not be a problem in the near future IMHO.
let's put it this way...
Here's the specs of Moto Droid from Motorola itself (http://developer.motorola.com/products/droid/)
RAM 256 MB
FLASH ROM 512 MB
USER STORAGE AVAILABLE (MAX) 256 MB
So the REST of the ROM clearly is to hold the Android OS itself. The actual programs you can load for running? 256MB. That's app storage.
I've always wondered if there's a way to read the actual ROM contents and enumerate that... But that's for another topic.
Found this useful post: boot process of Android OS
http://www.androidenea.com/2009/06/android-boot-process-from-power-on.html
Furthermore, I noticed that the "built-in" apps (i.e. bloatware) are actually just stuff left in the "system" dir which can only be accessed with root permission. So they are NOT store in "ROM" per se, but more like "part of boot rom".
I have to find explanation on how an app is loaded, but that helps...
Aha, so that's the term they used... Application Lifecycle.
http://www.youtube.com/watch?v=ITfRuRkf2TM
Okay, I take back what I said. Apps are loaded into RAM, but HOW things are allocated wasn't that clear.
From what I understand, apps, when they are killed by system, some exit gracefully by writing their instance "state" (data and cache) to app storage. Some just exits.
Browser will write the URL, for example. When the browser is "resumed", the process is loaded, then the instance loads back the URL and it's as if nothing happened.
I'll have to revise the paper, AND I haven't figured out what to say about swap and compcache yet.
Made some corrections.
On 256MB machine, 30MB is used by deep system buffers (not part of OS), another 32 for OS cache, so about 190 or so is available the OS itself to load apps and services, and just the default gapps, system, phone, and so on is about 60MB. So a fresh clean phone should ahve no more than 120-130 MB free. If you load a couple apps with autostart services, it'll quickly drop below 50MB.
http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android
Another piece of the puzzle... The numbers at the bottom of "Manage Services" is as explained below:
(quoting from http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html )
"Finally, along the bottom of the screen are some obscure numbers. If you know how to interpret them, this gives you a lot of information on the memory status of your device:
* Avail: 38MB+114MB in 25 says that the device has 38MB of completely free (or likely used for unrequired caches) memory, and has another 114MB of available memory in 25 background processes it can kill at any time.
* Other: 32MB in 3 says that the device has 32MB of unavailable memory in 3 unkillable processes (that is, processes that are currently considered to be foreground and must be kept running)"
The order is reversed in Android OS 2.2. Mine says
Other: 75MB in 5 Avail: 18MB + 20 MB in 3
Which should mean 75MB in 5 unterminable tasks, 18 MB free (or can be freed easily), plus another 20 MB used by 3 processes that can be killed to free up.
ProCrank says...
39911K System_server
15756K acore
12982K swiftkey
10136K DIY Screensaver (lock screen)
9392K Phone (system)
9093K ATKfroyo
6834K Terminal
3984K JuiceDefender
3785K Screebl
3482K system MMS
3329 SeePU
3244K Bluetooth
3199K SetCPU
1979K Zygote (which is Dalvik init)
1425K Mediaserver
and the rest is native system code well under 1MB in size.
If you add System_server, Phone, Zygote, Acore, and foreground app (terminal and procrank) you get about 75MB. It would be nice if that screen TELLS you which program it considers to be unterminable, but, oh well...
I had a search about and really I am only looking for confirmation as to whether this is accurate or not...
CALIBAN666 said:
I think its better to Post this here,when its not better,than sorry!!!
-----------------------------------------------------------------
Once a brief statement for those who are not traveling so long in the Android scene:
ZRAM = ramzswap = Compcache
In order to explain more precisely ZRAM first need other terms are more clearly defined:
Swap can be compared with the swap file on Windows. If the memory (RAM) to complete the PC the data that are being used not actively outsource (eg background applications) so as to re-evacuate RAM free. To this data is written to a hard disk. If required, this data is then read back from there easily. Even the fastest SSD is slower than the RAM. On Android, there is no swap!
In ZRAM unnecessary storage resources are compressed and then moved to a reserved area in the fixed RAM (ZRAM). So a kind of swap in memory.
This Ram is more free because the data then only about 1/4 of the former storage requirements have. However, the CPU has to work in more because they compress the data has (or unpack again when they are needed). The advantage clearly lies in the speed. Since the swap partition in RAM is much faster than this is a swap partition on a hard drive.
In itself a great thing. But Android does not have a swap partition, and therefore brings Android ZRAM under no performance gain as would be the case with a normal PC.
In normal PC would look like this:
Swap = swap file (on disk) -> Slow
ZRAM (swap in RAM) -> Faster than swap
RAM -> Quick
With Android, there is no swap partition, and therefore brings ZRAM also no performance boost.
The only thing that brings ZRAM is "more" RAM. Compressed by the "enlarged" so to speak of the available memory. That's on devices with little RAM (<256MB) also pretty useful. The S2 has 1GB but the rich, and more than. There must not be artificially pushed up to 1.5 GB.
After you activate the ZRAM also has 2 disadvantages. The encoding and decoding using CPU time, which in turn has higher power consumption.
Roughly one can say (For devices with more than 512MB RAM):
Without ZRAM: + CPU Performance | + Battery | RAM
With ZRAM: CPU Performance |-Battery | + RAM
For devices with too little RAM so it makes perfect sense. But who shoots the S2 already be fully complete RAM and then still need more?
Check whether you can ZRAM runs in the terminal with
free or cat / proc / meminfo
I hope it helps to understand zRam!!!!
Click to expand...
Click to collapse
Taken from here
That looks accurate, but it's a little hard to understand. A basic explanantion of zRAM is that zRAM compresses an actual block of RAM in order to have more RAM available to the system. If you make the compression too high with zRAM then your device will actually go slower as a result. An example of going over the top would be adding 256MB of RAM using zRAM on a phone that only has 768MB RAM (that's almost a 50% compression rate because ~600MB is available to the user). zRAM also requires the CPU to compress and decompress the data.
Zram is not ram. It is a virtual memory, also known as swap space, which lives in the ram. Virtual memory is the part where the system stores memory fragments which are not accessed, making more room for apps to store information in the ram. Most Pcs work with virtual memory on disk, but Linux has a zram feature, aka CompCache, which can hold unused pages in a compressed manner in memory, thus makes more ram available by compressing unaccessed pages.
Sent from my HTC Sensation Z710e using xda premium
so this ZRAM tweak is only useful for devices with low RAM's isn't it? well thanks for the info i dont wanna sacrifice batt life for some unnoticeable effect on my s3
once zram is enabled ....how do u remove the partition completely from.the ram after disabling it?
I noticed that my galaxy s duos comes with zram . However I wish to disable the partition and instead use swap partition in /cache .
So....how do I completely remove the partition space in ram?
Thank you .
Virtual Memory
Raven2k said:
Zram is not ram. It is a virtual memory, also known as swap space, which lives in the ram. Virtual memory is the part where the system stores memory fragments which are not accessed, making more room for apps to store information in the ram. Most Pcs work with virtual memory on disk, but Linux has a zram feature, aka CompCache, which can hold unused pages in a compressed manner in memory, thus makes more ram available by compressing unaccessed pages.
Sent from my HTC Sensation Z710e using xda premium
Click to expand...
Click to collapse
Sorry but you have a wrong concept of "Virtual Memory".
Google "virtual memory wiki" for the full article.
All programs have access only to their own "virtual" memory space of 4GB on 32bit OS'
But internally to the OS, that full virtual address space is divided on pages of 4KB each.
The OS manages all programs pages, if not enought RAM is available, it starts writing pages to the Page File / Swap partition.
When a program tries to read or write from its virtual memory address which page is not on physical memory, the OS launches a Page Fault Exception, takes over execution and reads the faulty page from storage (page file or swap partition) to physical memory, and if necessary writes another page to storage to make room for the requested page. Then it resumes the program execution.
From the article. Android does not have a Swap partition, but it compresses pages to ZRAM.
geno83 said:
Sorry but you have a wrong concept of "Virtual Memory".
Google "virtual memory wiki" for the full article.
All programs have access only to their own "virtual" memory space of 4GB on 32bit OS'
But internally to the OS, that full virtual address space is divided on pages of 4KB each.
The OS manages all programs pages, if not enought RAM is available, it starts writing pages to the Page File / Swap partition.
When a program tries to read or write from its virtual memory address which page is not on physical memory, the OS launches a Page Fault Exception, takes over execution and reads the faulty page from storage (page file or swap partition) to physical memory, and if necessary writes another page to storage to make room for the requested page. Then it resumes the program execution.
From the article. Android does not have a Swap partition, but it compresses pages to ZRAM.
Click to expand...
Click to collapse
True but not completely.
Android doesn't require ZRAM nor swap to work. It is a linux fraction but it doesn't act like linux completely.
Could anybody tell me the best way to improve ram efficiency without sacrificing batt
Thread cleaned. Either post relevant replies or don't post.
Right now, I have a full ZRAM. How does RAM handles it?
Sent from my Moto G4 Plus using XDA Labs
Hello everyone,
I need some help with expanding RAM of an old android tablet of mine, more specifically, an Genesis GT-7204, using an SD card.
I rooted the tablet already and granted the app RAM Expander from Roehsoft root permissions, but when i try to use the app i get the following message: "This path is not available for swap!" Image below:
https://imgur.com/4MZ2l
The path i used was mnt/local:
https://imgur.com/6zUH7
Thanks in advance!
The images might be blocked, in any case i will post them here.
Personally have experienced that Virtual RAM ( aka SWAP RAM ) can only get created on a device's internal storage memory ( aka /sdcard ).
Hint: As path manually enter /data .
BTW:
Android since ever comes with virtual RAM ( SWAP RAM) feature. The internal storage memory used herefore is the /cache partition.
Also take note that an Android apps' memory usage by design is limited to some MBs. Even if you increase in Android's system file called build.prop the related amount, it's not sure that this is taken into account: an app's develeoper allows this or not.
And keep in mind that apps that did not fit in the RAM before without swap do not suddenly fit in the RAM.
Don't expect wonders using Roehsoft's RAM Expander. Probably you may not notice any gain in device's performance.
So i can only use my internal storage to add RAM? And not the SD card?
And to do this i have to manually set a path, but i am new at this, but i have to use /data or there is something else?
And in my case it is worth it, because this freaking tablet has only 500 MB of RAM!!!!!
jwoegerbauer said:
Personally have experienced that Virtual RAM ( aka SWAP RAM ) can only get created on a device's internal storage memory ( aka /sdcard ).
Hint: As path manually enter /data .
BTW:
Android since ever comes with virtual RAM ( SWAP RAM) feature. The internal storage memory used herefore is the /cache partition.
Also take note that an Android apps' memory usage by design is limited to some MBs. Even if you increase in Android's system file called build.prop the related amount, it's not sure that this is taken into account: an app's develeoper allows this or not.
And keep in mind that apps that did not fit in the RAM before without swap do not suddenly fit in the RAM.
Don't expect wonders using Roehsoft's RAM Expander. Probably you may not notice any gain in device's performance.
Click to expand...
Click to collapse
So i can only use my internal storage to add RAM? And not the SD card?
And to do this i have to manually set a path, but i am new at this, but i have to use /data or there is something else?
And in my case it is worth it, because this freaking tablet has only 500 MB of RAM!!!!!
pprg1101 said:
So i can only use my internal storage to add RAM? And not the SD card?
And to do this i have to manually set a path, but i am new at this, but i have to use /data or there is something else?
And in my case it is worth it, because this freaking tablet has only 500 MB of RAM!!!!!
Click to expand...
Click to collapse
Honestly I never used Roehesoft's RAM Expander on a real Android device and I'll never will use it: In my eyes it's crap. And, you'll find no serious confirmations in the WEB that it works as claimed.
Android for good reason doesn't come with SWAP feature. Android's Memory Manager frees RAM if necessary.
It's on you to play around with Roehesoft's RAM Expander. Good luck.
My last 2 cents here:
SWAP is a place on the internal storage memory (usually a dedicated partition) that is used to store programs or data that can't fit in memory, like when a program grows more than the available RAM (BTW: In the world of Windows this space is called Swapfile.sys ). SWAP is way slower than RAM, so when you create / enable SWAP the phone gets slower, but at least the program can work.
All the stuff that can't or shouldn't stay in your RAM is written out to SWAP and read back in when needed. This means that the SWAP medium needs to be fast and resilient to lots of writes.
IMHO using an external SD card as SWAP fails on both counts. It is slower at reading/writing than a phone's internal drive, and each of its constituent sectors can only be written to a limited number of times before they wear out and can no longer reliably store data.
SC pl