Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS: Browser crashes due to low memory

My site crashes in the browser due to low memory on iOS. I'm repeating some action which consumes memory. After several attempts, the browser crashes. However, when I tested the same site on my desktop using Chrome by using timelime from dev tools:

  1. Perform the same action
  2. Collect garbage
  3. All additionally allocated memory is collected.

Why does the browser crash if there are no memory leaks? Is there a way to force garbage collection?

like image 467
Marat Faskhiev Avatar asked Feb 26 '14 11:02

Marat Faskhiev


People also ask

Why does my iPhone keep crashing on 64-bit apps?

I still see low memory errors associated with any crashes. It could just be that the move to 64-bit applications (and associated memory pressure) is putting more stress on iOS’ memory management routines, which in turn exposes some weaknesses. and other tech sites.

Why is the new 64-bit version of iOS so bad?

It could just be that the move to 64-bit applications (and associated memory pressure) is putting more stress on iOS’ memory management routines, which in turn exposes some weaknesses. and other tech sites. The Air’s 64-bit programs take up 30% more RAM than 32-bit programs, the iPad 3 and 4 have, in effect, 40% more RAM than the iPad Air.

Why is my iPhone running low on iCloud storage?

If your iPhone is running low on storage space, the system will automatically release some of that space when you install apps, update your operating system, download music, and so on. However, that will be very limited, so you'd be better choose a professional iPhone data eraser to free up more space. 3. Do I Need to Buy iCloud Storage for iPhone?

Why does my iPhone shut down when it has full memory?

Well, storing excessive data on your iPhone may bring unpleasant consequences. It might force your iPhone to act abnormal and consequently, the iPhone may shut down since the storage is full. So is the thing that's happening in your situation, where your iPhone memory has reached its peak and is now affecting the performance of your iPhone.


1 Answers

Know iOS Resource Limits

Your webpage performing well on the desktop is no guarantee that it will perform well on iOS.

1.Keep in mind that iOS uses

  • EDGE (lower bandwidth, higher latency)
  • 3G (higher bandwidth, higher latency)
  • Wi-Fi (higher bandwidth, lower latency)

to connect to the Internet.

2.You need to minimize the size of your webpage. Including

  • unused or unnecessary images
  • CSS
  • JavaScript

which adversely affects your site’s performance on iOS.

3.Because of the memory available on iOS, there are limits on the number of resources it can process:

The maximum size for decoded GIF, PNG, and TIFF images

  • 3 megapixels for devices with less than 256 MB RAM
  • 5 megapixels for devices with greater or equal than 256 MB RAM

That is ensure width * height ≤ 3 * 1024 * 1024 for devices with less than 256 MB RAM

Note: that the decoded size is far larger than the encoded size of an image.

The maximum decoded image size for JPEG is 32 megapixels using subsampling. JPEG images can be up to 32 megapixels due to subsampling, which allows JPEG images to decode to a size that has one sixteenth the number of pixels. JPEG images larger than 2 megapixels are subsampled—that is, decoded to a reduced size. JPEG subsampling allows the user to view images from the latest digital cameras.

4.The maximum size for a canvas element is

  • 3 megapixels for devices with less than 256 MB RAM
  • 5 megapixels for devices with greater or equal than 256 MB RAM. The height and width of a canvas object is 150 x 300 pixels if not specified.

5.JavaScript execution time

limited to 10 seconds for each top-level entry point. If your script executes for more than 10 seconds, Safari on iOS stops executing the script at a random place in your code, so unintended consequences may result.

6.The maximum number of documents that can be open at once is

  • eight on iPhone

  • nine on iPad.

Please refer Developing Web Content for Safari-Apple Documentation for more info.

Garbage Collection

Mobile safari javascript implementation doesn't have any command like CollectGarbage() in internet explorer for garbage collection.

There are three events that will trigger garbage collection in mobile safari(Reference).

  • A dedicated garbage collection timer expires
  • An allocation occurs when all of a heap's CollectorBlocks are full.
  • An object with sufficiently large associated storage is allocated.

Its really a bad practice to trigger garbage collection.What we should be doing is to write codes that doesn't leak memory.

Plese refer Memory management in Javascript

like image 77
Durai Amuthan.H Avatar answered Sep 24 '22 08:09

Durai Amuthan.H