How much free random memory is required for typical apps in Android to run at optimal speed?

DrSunil Vaswani April 28, 2013
Pinterest Stumbleupon Whatsapp

How much minimum free “random access memory” is required for medium sized apps in Android to run at optimal speed? The profile of device in question is at http://www.gsmarena.com/micromax_a110_canvas_2-5088.php

  1. babu vhora
    April 29, 2013 at 7:56 am

    I think 50mb free ram is enough.........

    • DrSunil Vaswani
      April 30, 2013 at 4:26 am

      hullo

      Are you sure that 50 mb for apps or interface to work "at optimat speed"?

      When random access memory was reduced from 200 mb plus to less than 200 mb I noticed a lag in interace display "to-and-fro main button" though that may not be result of random access memory reducing

      Does cached memory also affect the interface speed?

  2. ha14
    April 29, 2013 at 6:32 am

    depends on device usually ranges between 16 and 48 MB, The lower limit for a low density/small screen is 16 MB.

    medium size application running on small screen and big screen they can have different memory usage one reason is that big screen can have more pixels..
    Google I/O 2011: Memory management for Android Apps
    http://www.youtube.com/watch?v=_CruQY55HOk

    ActivityManager
    http://developer.android.com/reference/android/app/ActivityManager.html#getLargeMemoryClass

    • DrSunil Vaswani
      April 30, 2013 at 4:31 am

      hullo

      As low as 16 to 48 mb won't slow down interface changes from one app to another without lag and allow app to function at "optimal" speed?

      When random access memory was reduced from 200 mb plus to less than 200 mb I noticed a lag in interace display "to-and-fro main button" though that may not be result of random access memory reducing. You may please clarify with reference

      Does cached memory also affect the interface speed?

    • ha14
      April 30, 2013 at 1:02 pm

      More RAM give you faster task-switching. Also, more RAM means your homescreen is less likely to be killed; More cpu gives less lag and better background processing. Android will use all available ram through memory management.

      Many applications have several components, the frontend process and the backend services. Because the way the applications work under the Android OS they usually take up at least 3-5 MB (others can use more) of RAM even though the application itself appears to be only a few hundred KB in size.

      When you reload an application that's already in memory, you will get the fastest reload time; whereas if the application is unloaded, then the application needs to do full reload and takes more time and you notice slow speed on android.

      when you are trying to fit X+Y applications on Android OS which can only handle X applications then Android will use the swap function so it kills off "lower priority" applications and services in order to make room for other applications, but those applications may request the system to load itself back into memory, this constant swap process is handled all in the background. Perhaps swapping prevents Application Life Cycle, Android's memory management scheme, to work correctly.To heal this situation you have to load less application into the ram based on the available space.

      Caching Bitmaps
      http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
      A memory cache offers fast access to bitmaps at the cost of taking up valuable application memory.
      A disk cache can be used in these cases to persist processed bitmaps and help decrease loading times where images are no longer available in a memory cache. Of course, fetching images from disk is slower than loading from memory and should be done in a background thread, as disk read times can be unpredictable.

      Managing Bitmap Memory
      http://developer.android.com/training/displaying-bitmaps/manage-memory.html
      Android 2.3 adds concurrent garbage collection, which means that the memory is reclaimed soon after a bitmap is no longer referenced.

      Multitasking the Android Way
      http://android-developers.blogspot.fr/2010/04/multitasking-android-way.html

      if the cache is corrupted it will slow down android

      Optimize memory usage
      http://support.google.com/android/bin/answer.py?hl=en&answer=1665504
      Android also manages how apps use RAM. It may cache some things you’ve been using recently, for quicker access if you need them again, but it will erase the cache if it needs the RAM for new activities.

    • DrSunil Vaswani
      May 1, 2013 at 4:53 am

      Thanks

      for so much detail and quoted references!

  3. Rajaa Chowdhury
    April 29, 2013 at 1:59 am

    I guess there is no specific answer to it, may have a general figure. Probably you can ask in Android specific forums and specially android developers in forums like XDA developers forum http://forum.xda-developers.com/

    • DrSunil Vaswani
      April 30, 2013 at 1:43 pm

      ok

  4. DalSan M
    April 29, 2013 at 1:53 am

    Optimally, 80MB or more would be best, but I would say no less than 50MB to run most user applications. Everything should still run okay with around 20MB, though that would be pushing it a little in case of other apps needing the memory when opening. 512MB of RAM or more would be best for overall smoothness, but 256MB would be usable but with some lag issues once in a while. Keeping installed applications to a minimum as well as widgets and no live wallpapers would help to ensure that your memory is not used up quickly only for convenience (I would keep shortcuts to apps at a minimum as well). Using FTL Launcher (Faster Than Light launcher) or similar launcher that uses little resources may help reduce memory usage as well over many other launchers, including the stock launcher that came with your phone. Beware of using automatic task killers unless you know what you are doing because most times it can make performance drop dramatically instead of help performance. If you know which apps can and should be closed automatically then it will help performance. I would also like to add that if you use certain keyboards, like Swype, they may also eat up quite a bit of RAM (sometimes Swype takes about 70MB of RAM for me, even without it open and being used).

    • ha14
      April 29, 2013 at 9:13 pm

      if i am not wrong the launcher do have very little effect on how the application is written to use RAM, perhaps it can speed the launch of the application but this also depends on how fast is the processor.

    • DalSan M
      April 29, 2013 at 11:38 pm

      From my experience, some launchers like Samsung's Touchwiz takes up 20+MB of RAM over FTL Launcher, though results will vary. Some launchers use extra effects like 3D effects that may take up more memory just to be flashy. Many people will do just fine without changing launchers, but if the performance isn't as nice as wanted, changing the launcher may help. If the launcher is stock vanilla Android, then the might not be any performance difference.

    • DrSunil Vaswani
      April 30, 2013 at 4:34 am

      hullo

      As low as 50 mb won't slow down interface changes from one app to another without lag and allow app to function at "optimal" speed?

      When random access memory was reduced from 200 mb plus to less than 200 mb I noticed a lag in interace display "to-and-fro main button" though that may not be result of random access memory reducing. You may please clarify with reference

      Does cached memory also affect the interface speed or cause lag or slow down apps working?

      Regarding swype I have doubt your mentioning that it occupies memory , as it does not show in running processes. Kindly clarify

    • DalSan M
      April 30, 2013 at 1:48 pm

      Most applications for android require less than 10MB RAM to be used when running, though some applications like the launcher and keyboard can take up well over 30MB and even over 60MB of RAM. 50MB of free RAM in many instances should not cause lag issues. If the processes that are commonly used are cached, they should open quicker than if they were not, but does not guarantee that there will not be any lag, no matter how much free RAM there is (even I notice some lag on my Samsung Galaxy Note 2 which has 2GB of RAM, but it seems that the background running processes can interfere with switching programs, thus tasking the processor and GPU of the phone and cause lag). Not all performance drops are caused by low free RAM available, it can be caused by bad programming code that slows down the processing speed or processes that run up the GPU processing. Processor and GPU speed and type will have something to do with lag issues as well. It is like using a Pentium 4 processor with integrated graphics versus using an i5 processor with a graphics accelerator card; the better the processor and GPU, the better the performance. Having all the memory possible in a Pentium 4 machine will not beat an i3 system with an accelerator card and 1GB RAM in many instances.

      As far as keyboards such as Swype, if you use the keyboard as your main keyboard, it will be in your running processes. I have 2 running processes for SWYPE (my default keyboard) where the main process takes over 20MB, and a secondary prices that takes about 4MB of RAM. Sometimes the RAM used goes up to 70MB, but not usually. Even when the keyboard is not open, it remains in the running processes to make sure it can be brought up quickly when necessary, though this depends on the processor and free RAM as far as how quick it becomes visible and usable.

      To be honest, the different processor types, speed, architectures, and amount of cores would have something to do with lag issues similar to having low free RAM. Also, the speed and cache amount used for internal and external storage can affect performance as well.

    • DrSunil Vaswani
      May 1, 2013 at 4:54 am

      Thanks for elaborate and about role of processor types , speed , architectures, and amount of cores having to do something with lag issues

Ads by Google