My app is constantly crashing after receiving many memory warnings. It is almost thirty thousand lines of code long so it is not easy to track the problem. I have run it through instruments and there are up to 30MB of live bytes at some stages, which should not be too much of an issue as far as I am aware. The memory leaks are extremely minimal, so they can not be the problem. The app tends to crash after playing it for long periods of time. Nothing in instruments has helped me to track the source of the memory warnings I am constantly receiving. Is there any other possible way to do this? It is very important that this doesn't happen for obvious reasons. Any help is greatly appreciated.
Memory warning and crashing app - can't find source of issue
449 views Asked by Fitzy At
1
There are 1 answers
Related Questions in IPHONE
- Issues in Migration of RISCV Test Harness from VCS to Questasim Simulator
- Queue Scenario Help Getting Started
- Writing a simulation program in Python
- Java Card applet EEPROM vs RAM testing
- Simulate the use of a website with a client
- Verilog simulation x's in output
- Time step independence of Molecular Dynamics code
- How to code a arrival generator with a varying intensity rate
- Is it possible to build a heatmap from point data at 60 times per second?
- Verilog Testbench constant exp and pram compilation and simulation errors
Related Questions in OBJECTIVE-C
- Issues in Migration of RISCV Test Harness from VCS to Questasim Simulator
- Queue Scenario Help Getting Started
- Writing a simulation program in Python
- Java Card applet EEPROM vs RAM testing
- Simulate the use of a website with a client
- Verilog simulation x's in output
- Time step independence of Molecular Dynamics code
- How to code a arrival generator with a varying intensity rate
- Is it possible to build a heatmap from point data at 60 times per second?
- Verilog Testbench constant exp and pram compilation and simulation errors
Related Questions in MEMORY
- Issues in Migration of RISCV Test Harness from VCS to Questasim Simulator
- Queue Scenario Help Getting Started
- Writing a simulation program in Python
- Java Card applet EEPROM vs RAM testing
- Simulate the use of a website with a client
- Verilog simulation x's in output
- Time step independence of Molecular Dynamics code
- How to code a arrival generator with a varying intensity rate
- Is it possible to build a heatmap from point data at 60 times per second?
- Verilog Testbench constant exp and pram compilation and simulation errors
Related Questions in INSTRUMENTS
- Issues in Migration of RISCV Test Harness from VCS to Questasim Simulator
- Queue Scenario Help Getting Started
- Writing a simulation program in Python
- Java Card applet EEPROM vs RAM testing
- Simulate the use of a website with a client
- Verilog simulation x's in output
- Time step independence of Molecular Dynamics code
- How to code a arrival generator with a varying intensity rate
- Is it possible to build a heatmap from point data at 60 times per second?
- Verilog Testbench constant exp and pram compilation and simulation errors
Related Questions in MEMORY-WARNING
- Issues in Migration of RISCV Test Harness from VCS to Questasim Simulator
- Queue Scenario Help Getting Started
- Writing a simulation program in Python
- Java Card applet EEPROM vs RAM testing
- Simulate the use of a website with a client
- Verilog simulation x's in output
- Time step independence of Molecular Dynamics code
- How to code a arrival generator with a varying intensity rate
- Is it possible to build a heatmap from point data at 60 times per second?
- Verilog Testbench constant exp and pram compilation and simulation errors
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Actually, 30MB of live bytes are not that little memory, in my experience. IMO, it is ok to consume up to large amounts of memory but only for a very short time, then go back to safer levels of memory occupation (which if you want to address iPad1 should be between 10 and 15/20 MB).
I think this is the case for "abandoned memory", i.e., memory which is allocated and, although it could be freed, is never (or too late).
Have a look at this post to learn about snapshot memory analysis, which could help in your case.
Of course there is also a chance that your app does need that much memory (e.g., because of some large resources it handles), and in this case the path forward would be trying to reduce required memory (and this highly depends on the kind of data your app manages. If it is a game, e.g., you could use an RGB565 format instead of RGBA8888 for your artworks).
Besides, if Instruments allows you to pin down a certain number of cases where the memory consumption goes up, you could work on those to remove all leaks you have, or remove abandoned memory, or optimize your app memory consumption requirements.