[Q] What is ZRAM? - HTC Sensation

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

Related

not clear to me from search what is current state of swap && / || CCache

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...

[Q] Can we increase the ram size ??

I wanted to know if we can increase the ram of our little pico (htc Explorer)....also I wanted to know the advantages of swap partition.....Does it increase the ram size ?? And also I wanted to know that if there are any other advantages of Sd-ext partition other than increasing the Internal memory ??
ahmadmemon said:
I wanted to know if we can increase the ram of our little pico (htc Explorer)....also I wanted to know the advantages of swap partition.....Does it increase the ram size ?? And also I wanted to know that if there are any other advantages of Sd-ext partition other than increasing the Internal memory ??
Click to expand...
Click to collapse
No, you can't. Physical RAM is fixed.
Swap acts as pagefile on Windows, if you know pagefile. swap is virtual RAM. When the system needs more memory, a part of RAM will be written to the swap partition. Swap partition is part of SD card, so it would be painfully slow to use. Beside that, using swap also quickly wear out your SD card.
Sd-ext partition can be configured to accommodate swap, if you have the right app/script. Normally, you divide your SD card in to 3 partitions, 1st for media, 2nd for app storage, 3rd for swap. And our phone's recovery have option to do this too.
As I said, I strongly object against using swap partition. It will make your phone even slower than without it.
Your best bet here is zRAM, or compcache. You can find zRAM setting in most CM based ROM. zRAM relies on compression to increase the virtual size of your RAM. For example, an app that usually takes 10MB of RAM will now take only 9MB if you choose 10% compression.
There're 10%, 18%, and 26% options. But zRAM is not free. It uses your CPU to compress and decompress data, so our phone's weak CPU is not very happy with it. Your choice. But if you really need more app to cache more app (better multi-tasking), 10% zRAM will give you about 40MB RAM more (400MB*10%=40MB), at the cost of little CPU and battery. Using 18% and 26% seems too aggressive.
redguardsoldier said:
No, you can't. Physical RAM is fixed.
Swap acts as pagefile on Windows, if you know pagefile. swap is virtual RAM. When the system needs more memory, a part of RAM will be written to the swap partition. Swap partition is part of SD card, so it would be painfully slow to use. Beside that, using swap also quickly wear out your SD card.
Sd-ext partition can be configured to accommodate swap, if you have the right app/script. Normally, you divide your SD card in to 3 partitions, 1st for media, 2nd for app storage, 3rd for swap. And our phone's recovery have option to do this too.
As I said, I strongly object against using swap partition. It will make your phone even slower than without it.
Your best bet here is zRAM, or compcache. You can find zRAM setting in most CM based ROM. zRAM relies on compression to increase the virtual size of your RAM. For example, an app that usually takes 10MB of RAM will now take only 9MB if you choose 10% compression.
There're 10%, 18%, and 26% options. But zRAM is not free. It uses your CPU to compress and decompress data, so our phone's weak CPU is not very happy with it. Your choice. But if you really need more app to cache more app (better multi-tasking), 10% zRAM will give you about 40MB RAM more (400MB*10%=40MB), at the cost of little CPU and battery. Using 18% and 26% seems too aggressive.
Click to expand...
Click to collapse
Does zRAM works without swap partition ??
Yes, it's different, you can read @redguardsoldier's post again, to get exactly what he is saying, just to be on the safe side
Increase RAM In HTC Pico (I worked For ME ).
ahmadmemon said:
I wanted to know if we can increase the ram of our little pico (htc Explorer)....also I wanted to know the advantages of swap partition.....Does it increase the ram size ?? And also I wanted to know that if there are any other advantages of Sd-ext partition other than increasing the Internal memory ??
Click to expand...
Click to collapse
TRY THE LINK BELOW IT WOKED FOR ME :laugh: >>>>>>>>>>>>
http://forum.xda-developers.com/showthread.php?t=2735281
I hope It will work for u as WELL :good:

Swap storage for more cpu capacity and clockspeed

I have heard of swapping storage on your phone for creating virtual ram, but I am curious and will be happy to know if you can also swap part of your phone storage space for virtual cpu. Is there even anything like virtual cpu?
You at any time can create virtual memory ( SWAP ) on a rooted Android OS to be used by Android OS.
Code example:
Code:
dd if=/dev/zero of=/data/local/swapfile bs=1024 count=65536
Side remarks:
CPU and RAM are totally different hardware components: CPU fetches program code from RAM, processes it, and returns result into RAM.
A SWAP doesn't increase device's RAM, you can't create a virtual CPU: a virtual CPU only exists on Anfroid emulators, not on any real Android device.
An Android device, as every computer, too, has a distinct amount of RAM .You may use SWAP, which stores the data actually residing in RAM on disk, if you run out of RAM .
SWAP can be / is useful because applications that aren't being used can be stored on disk until they are used. Then they can be "paged in" and run normally again. While it is not in RAM, though, the OS can use that RAM for something else, like disk cache. So it's a very useful feature, but if you don't have enough RAM to run your program, you definitely need more memory.
SWAP because it's part of the device's storage space is naturally much slower, which results in performance losses.
On Android each app is allowed to use only a certain amount of bytes of heap. This value is preset by app developer.
Thanks a lot.!

RAM Expander Roehsoft not working on my tablet, how can i fix this?

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

Can you change ZRAM with root on stock kernel?

Hi all,
With this Xiaomi device SoC source code was never released so only stock kernel can be used. Is it possible to turn on ZRAM and change ZRAM values with it still if I was to gain root?
Many thanks
LaurenceGough said:
Hi all,
With this Xiaomi device SoC source code was never released so only stock kernel can be used. Is it possible to turn on ZRAM and change ZRAM values with it still if I was to gain root?
Many thanks
Click to expand...
Click to collapse
You already have zRAM enabled by default. AFAIK modern Android devices don't use a swap partition (except RAM+ features).
see your zRAM:
Code:
su
cat /proc/swaps
adjust your zRAM:
Code:
su
swapon --help
the size of your zRAM is defined in
/vendor/etc/*fstab*
WoKoschekk said:
You already have zRAM enabled by default. AFAIK modern Android devices don't use a swap partition (except RAM+ features).
see your zRAM:
Code:
su
cat /proc/swaps
adjust your zRAM:
Code:
su
swapon --help
the size of your zRAM is defined in
/vendor/etc/*fstab*
Click to expand...
Click to collapse
Thanks very much, that command is super useful and no amount of Googling I did could find it!
/vendor/etc/*fstab* reports:
"/dev/block/zram0 none swap defaults zramsize=55%"
This sounds like ZRAM should be enabled at 2.2GB.
The problem with this device is the swap partition is reported as always 2252MB, yet even with the "RAM" boost turned on or off the "swap" partition is reported as the exact same size. I suspected based on the really, really poor memory related performance it is disk based SWAP... Anything more than 2-3 simple apps and they reload constantly like they were fully closed when switching apps. All power saving features are turned off.
P.S I am not rooted just yet, I was just trying to see if I could improve my performance as the CPU is quite strong but memory is the issue.
Thanks again
Edit:
I just ran /vendor/etc/*fstab* again after enabling "RAM boost" and restarting, it says it's on in the app switch view (+2GB) but the output is the exact same of this file, I am not sure if this is to be expected or not. Performance is exactly the same so I guess it's just another MIUI bug?
This "SWAP" partition is also not always full usually only 1GB out of the 2GB in use. Checking against a Pixel 7, it's 3GB of ZRAM (reported as SWAP, but of course no RAM boost or SWAP exists on Pixels) it's fully utilized almost always despite having double the physical RAM.
LaurenceGough said:
at 2.2GB
Click to expand...
Click to collapse
LaurenceGough said:
always 2252MB
Click to expand...
Click to collapse
we calculate with base 2!
=> 1024^2 = MiB = 1.048.576 Byte
=> 1.048.576 x 2258 = 2.367.684.608 Byte = 2,2GiB!!
=> 2258MiB = 2,2GiB
There is no partition or used storage for zRAM/swap on your device. Consider that zRAM is compressed with lz4 (=50% compression). So, 1GiB RAM storage needs only 512MiB zRAM storage. The (de)compression is done by the kernel.
zRAM (and also swap) can't boost your system. These partitions are only used for cached data. Before your kernel deletes this data to clear RAM storage it gets compressd and stored in the zRAM area. It's the most useless data.
zRAM is a dynamic partition on your RAM. If RAM only needs 128MiB zRAM then zRAM won't be greater than 128MiB. It never increases to the full available size until it's really needed. If fsrab states "55%" than 55% is the maximum size of zRAM in your RAM and not a persistent size that is always occupied.
Don't change anything regarding to the RAM management as Android is nearly perfect handling thas by itself. You can only make it worse.
Thanks again. The issue I'm facing is that just a few basic apps struggle to run when multitasking, I have disabled all power saving features and MIUI optimisations / powerkeeper daemon but when switching apps or webpages they very often reload fully. I am certain this is an issue with low memory, and I know 4GB is not a lot of memory these days, but I thought I could run more than two tabs in a web browser, and more than a few simple apps without them reloading.
My understanding of zRAM is that it compresses RAM as you say, whilst this taxes the CPU more it should be able to compress more data into the RAM, effectively allowing more apps / webpages (pages) to stay available to use, rather than being killed by the low memory killer dameon lmkd.
Is my understanding correct that this 55% zRAM would provide an extra ~3.3GB or so of compressed RAM, making the total addressable RAM approx ~5.3GB?
If the 2GB of "RAM boost" or SWAP as it should be called if I am correct was working I'd expect it to be able to keep a few more apps or tabs running in memory and prevent a full reload? Is there any way I could check if this is running correctly without root? I know SWAP partitions are not ideal and they have a few downsides but I think this phone has relatively fast storage for its price range.
I am on the lookout for a device with more RAM but it'd be nice to understand a bit more about this situation and learn.
LaurenceGough said:
making the total addressable RAM approx ~5.3GB?
Click to expand...
Click to collapse
Your RAM storage remains 4096MiB. The swapped data in zRAM is compressed and can't processed until it gets decompressed. All data in zRAM actually should have been deleted and this storage isn't acting as additional RAM storage increasing your performance per se.
Apart from that Android's RAM management always uses 60-70% under normal conditions. For peaks, due to some heavy memory using apps, it can increase to 80-90% while at the same time zRAM increases, too. It's correlating. You can't force RAM to swap everthing into zRAM for having 2-3GB available. That's not the meaning of zRAM.

Categories

Resources