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 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useState 버그 파트 I: 예기치 않은 상태 업데이트.이 질문을 명심하십시오. 이 useState 버그 시리즈 파트에서는 useState의 가장 일반적인 문제와 해결 방법에 대해 이야기하겠습니다. 이 작은 앱의 예를 들어 보겠습니다. 이것은 우리가 시연을 위해 사용할 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.