어딘가에 메모리 누수가 있습니다. 내 프로그램과 관련이없는 것으로 보입니다. 나는 일단 내 프로그램이 일단 정상적인 방법으로, seg-faulting 또는 aborting에 의해 종료되면, 메모리는 회복되지 않는다는 사실에 기반하여이 대담한 진술을하고있다. 내 프로그램이 범인이라면 MMU가 모든 것을 복구한다고 가정 할 것이지만, 그렇다고 볼 수는 없습니다.stdio를 리디렉션 할 때 Linux BASH 메모리 누수가 발생했습니다.
이 괜찮 같이 내가 (BASH 버전 2.05 또는 4) 표준 출력을 리디렉션 파일에 때 누출은 활동하기 시작:
# my-program
을하지만이되지 않습니다 :
# my-program > /mnt/sda1/log-output.txt
화면에 인쇄하는 속도는 < 2Kb/sec입니다. (파일이 USB 키에 있음).
아이디어가 있으십니까?
관련 질문은 here입니다.
누출이 정확히 얼마나되는지 아십니까? – EFraim
처음에는 세그먼트 오류가 발생했을 때 알았고 45 메가의 RAM 중 40 개가 누락되었습니다 (임베디드 시스템). 나는 재부팅하고 프로그램을 relauched하고이 명령을 사용하여 메모리를 모니터했다. for ((c = 1; c;)) do cat/proc/meminfo && sleep 1; 완료 | awk '/ MemFree :/{if ($ 2 max || max == 0) max = $ 2; \ n ", $ 1, $ 2, min, max)} '' ' –
Jamie
캐시 된 필드의 수치를 확인 했습니까? 파일에 쓰기가 확실히 캐시에 추가 될 수 있습니다. 이렇게하면 MemFree가 줄어들지 만 필요에 따라 교정 할 수 있으므로 메모리를 잃어 버리지는 않습니다. –