Visual C++ 런타임 힙에 대해 HeapCompact()
과 동일한 효과를 낼 수 있습니까? 어떻게하면 될까요?VC++ 런타임 힙을 압축 할 수 있습니까?
답변
_get_heap_handle을 사용하여 CRT 힙에 대한 처리를 가져온 다음 HeapCompact를 호출 할 수 있습니다. 이것이 나 자신을 시험해 보지 않았기 때문에 이것이 지원되는지/안정적인지 확실하지 않다. HeapCompact를 serialize 된 모드로 호출하여이 작업의 기회를 갖기를 원한다고 생각합니다.
이 문제가 발생하면 핸들의 HeapSetInformation (_get_heap_handle의 MDSN 문서)을 호출하고 내장 LFH가 자동으로 압축을 처리하도록합니다.
IIRC 자신의 메모리 관리자를 쓰지 않고도. 또한 작업의 중요하지 않은 부분입니다. 특히 인접한 더 작은 빈 메모리 블록을 더 큰 메모리 블록과 결합하는 것 이상의 작업을 수행하려는 경우 더욱 그렇습니다.
실제로 인접 블록을 결합하는 것이 HeapCompact()가 수행하는 유일한 방법입니다. – sharptooth
더 좋은 아이디어가 없으려면 * 정말 *해야합니다. – Spike
예, 메모리 할당 오류의 원인 중 하나가 힙 조각입니다. 'malloc()'이'NULL'을 반환하는 경우'HeapCompact (GetProcessHeap(), 0)'을 시도하고 손가락을 교차시킨 다음 malloc()을 다시 시도 할 수 있습니다. 실제로 나쁜 해결책이지만 시간이 부족할 때 도움이 될 수 있습니다. 프로그램의 메모리 할당 전략을 실제로 최적화/변경해야합니다. 메모리 매핑 파일 ([link1] (http://msdn.microsoft.com/en-en/library/dd997372.aspx) 및 [link2] (http://en.wikibooks.org/wiki/Optimizing_C%2B % 2B/일반 _ 최적화 _ 기술/입력/출력 # 메모리 매핑 _ 파일)). –
- 1. Response.write를 압축 할 수 있습니까?
- 2. Java에서 힙을 얼마나 많이 늘릴 지 예상 할 수 있습니까?
- 3. vC++에서 런타임 오류가 발생했습니다
- 4. upx 압축 프로그램을 사용하여 상용 프로그램을 압축 할 수 있습니까?
- 5. 어떻게 펄에서 압축 된 압축 파일을 추출 할 수 있습니까?
- 6. 어쨌든이 SQL 쿼리를 "압축"할 수 있습니까?
- 7. VC++ 런타임 파일을 배포하는 올바른 방법
- 8. 동일한 작업으로 VC++ 2010과 VC++ 2008에서 원활하게 개발할 수 있습니까?
- 9. SSE4없이 VC++에서 곱셈을 벡터화 할 수 있습니까?
- 10. 힙을 사용하여 큐 구현
- 11. C++ 힙을 내려 놓습니다.
- 12. 힙을 지우는 방법?
- 13. 정확히 DLL은 실행 파일과 다른 힙을 사용합니까?
- 14. 압축 된 로그 파일을 사용하도록 java.util.logging을 구성 할 수 있습니까?
- 15. Silverlight 3에서 압축을 해제하거나 압축 할 수 있습니까?
- 16. Zip-safe 플래그가없는 달걀을 기본적으로 Distribute로 압축 할 수 있습니까?
- 17. ClickOnce 배포 된 응용 프로그램 설치를 압축 할 수 있습니까?
- 18. .NET Windows 응용 프로그램을 단일 .exe로 압축 할 수 있습니까?
- 19. Silverlight (Chart) LineSeries의 날짜 범위를 압축 할 수 있습니까?
- 20. Maven2를 사용하면 리소스에있는 디렉토리를 어떻게 압축 할 수 있습니까?
- 21. Azure Blob 저장소의 파일을 압축 해제 할 수 있습니까?
- 22. 가장 작은 자바 런타임 합법적으로 배포 할 수 있습니까?
- 23. 단일 프로세스에서 얼마나 많은 런타임 (CLR)을로드 할 수 있습니까?
- 24. LinqPad 런타임 객체를 연결하고 쿼리 할 수 있습니까?
- 25. 런타임 중에 플렉스 토큰을 정의 할 수 있습니까?
- 26. Qt 앱을 다시 컴파일합니다. 최신 VC++ 2008 런타임
- 27. EPub 파일을 압축 해제 할 수 없습니다.
- 28. 브라우저에서 사진 힙을 표시/스크롤
- 29. 압축 알고리즘은 파일 집합에 대해 "학습"하고 압축 할 수 있습니까?
- 30. VC++ : KB971090 및 Visual C 런타임 DLL 종속성 선택
"런타임 힙"이란 무엇입니까? 다른 종류가 있습니까? –
@Neil Butterworth : malloc()이 사용하는 것을 의미합니다. Win32에서는 프로그램이 HeapCreate()를 사용하여 추가 힙을 만들 수 있습니다. – sharptooth
관심 없으면 자유 블록 통합이 자동으로 일어나지 않는다는 놀라운 이유가 있습니까? http://msdn.microsoft.com/en-us/library/cc265897.aspx –