java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Out of memory at java.lang.Thread
1184 단어 메모리 유출bugAndroidBUGFix
java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Out of memory
at java.lang.Thread.nativeCreate(Native Method)
at java.lang.Thread.start(Thread.java:753)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:970)
at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1038)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1180)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)
라인이 너무 많이 만들어졌나 봐요. 코드가 불합리한 부분이 있어요.
이것은 회사 프로젝트의 버그입니다. 원래 쓴 코드는 매우 규범에 맞지 않습니다.
프로젝트에서 라인을 함부로 사용하는 곳은 유사하다
1.timer가 사용하는 시간은 매번 new입니다. 원래는 방출되지 않았습니다.(프로젝트의 서비스에서 매번 new Timer, 자원 낭비)
2. OKHttpClient가 여러 개 있습니다.
3. 라인을 빈번하게 만드는 곳에는 스레드 탱크가 없습니다.
4. 프로젝트에 한 번의 포지셔닝이 있는데 매번 new AMapClient에서 한 번의 포지셔닝을 합니다. 포지셔닝이 완료되면 stopLocation()이 떨어지지 않고 서비스도 있습니다.
중, 라인이 갈수록 늘어나면 stack OOM을 유발한다
기본적인 해결 사고방식은 다음과 같다.코드 라인을 보고 방출이 불합리한 부분을 만들어 최적화합니다.
2. bugly를 통합하고 buglog를 보고 다른 라인을 보면 많은 라인이 있는데 그 중에서 중복된 라인은 불합리한 부분이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IOS 메모리 누출 검사 방법 및 MLeakFinder 다시 쓰기iOS 개발에 있어 메모리 유출 문제는 이미 흔히 말하는 화제이다.일상적인 면접에서 이런 문제들이 자주 언급된다.우리는 일상적인 개발 과정에서 메모리 유출 검사를 하는데 일반적으로 인스트루먼트 도구의 Leaks/Al...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.