응용 프로그램 내에서 힙 덤프 을 요청하는 방법이 필요합니다.응용 프로그램 내에서 Java 힙 덤프 (코어 덤프)를 요청하십시오.
이론적 근거 : 특정 오류 조건이 발생하면 힙을 덤프하여 메모리가 보유하고있는 것을 볼 수 있습니다.
그러나이 작업을 자동화하고 싶습니다 (예를 들어, 특정 조건이 발생했거나 더 이상 핑을 가져 오지 않을 때). 일부 테스트가 실패하면이 작업을 자동화 할 수 있습니다. 따라서 응용 프로그램 내에서 힙을 덤프 할 방법이 필요합니다. 나는 MX 콩 물건으로 그것을 찾는 것처럼 보일 수 없다. MX Beans는 모니터와 "ownable synchronizer"정보, 교착 상태 및 경합 정보로 아주 멋진 스택 추적을 제공 할 수 있지만 힙 덤프를 요청하는 방법을 찾지 못하는 것 같습니다. 그런 방법이 있습니까? 또는 몇 가지 간접적 인 방법으로, 예를 들어 이러한 JVisualVM이하는 일은 어떻게됩니까? 그리고 JVM에게 OutOfMemoryExceptions ..에 코어를 덤프하도록 말할 수 있습니다.
굉장, 내가 뭘 찾고 있었는지, 고마워! 나는 내가 인터넷 검색을하는 동안 그 블로그 게시물을 찾지 못했다는 사실이 놀랍다 고 생각한다. sun.management하에, 분명히 많은 재미가 있습니다! – stolsvik
한 번 더 의견을 보내십시오. (OP에 게시 된 아이디어로 돌아 가기) : "OutOfMemoryError 덤프 힙"링크에서 읽을 수 있습니다. "기본 제공 힙 덤퍼를 사용하여 힙 스냅 샷을 다른 경우는 jmap 명령 줄 유틸리티 또는 jconsole 모니터링 및 관리 콘솔을 사용하여 수행합니다. " 이러한 툴은, 아마, 2 번째의 링크가 참조하는 독자적인 MXBean를 사용하고 있을까? 표준 MX-beans에는이 dumpHeap (fileName, live) 메서드가 없다는 것이 이상하다는 것을 알게되었습니다. – stolsvik
일종의 성가신, 예,하지만 그것은 표준 기능이었던 것 같아요, 힙 덤프 형식도 표준화되어야합니다. 최소한, 그것은 많은 일이 될 것이라고 생각합니다. 그리고 아마도 벤더의 VM 구현에서 자유를 제한 할 수 있습니다. – gustafc