2016-11-18 8 views
0

저는 현재 pyk를 사용하여 belkasoft, ftk imager 등의 응용 프로그램에서 만든 메모리 덤프를 처리합니다. 일반적으로 확장자는 .mem 또는 .dmp이며 양식 :큰 휘발성 메모리 파일을 바이트 단위로 읽고 처리하기

53 FF 00 F0 53 FF 00 

나는이 데이터의 사용을 히트 맵을 말하거나 각 바이트를 시각화하려고 어쩌면 곡선을 사용할 수 있도록 시각화하고 싶습니다. 2GB 파일의 경우 2147483648 바이트입니다. 당신은 어떻게 읽고> = 2기가바이트 큰 파일 이런 종류의 처리에 접근 할

나는 같은 실험을했습니다 :

with open("File.mem",'rb') as file: 
    byte = file.read(1) 
    while byte: 
     Do something 

어떤 계산을 관리하지만 고통스럽게 느린 나는 또한 시도 파일을 한 줄씩 빠르게 읽었지 만 각 줄의 바이트를 읽고 일부 변환을하는 것도 고통스럽게 느렸다. numpy loadtxt에 대한 내용도 읽었지만 많이 시도하지는 않았습니다. 먼저 여기에서 물어볼 것입니다.

이 시나리오에 적합한 아이디어가 있습니까?

덕분에 많은

답변

0

큰 파일을 읽을 수있는 일반적인 접근 방식의 mmap을 사용하는 것입니다. 파일 내용은 프로세스 메모리 공간에 매핑되며 RAM에서 데이터를 읽어 액세스 할 수 있습니다. OS는 필요한 데이터를 RAM에로드하는 데주의를 기울입니다. 이것은 스왑 파일이 작동하는 것과 유사하게 작동합니다. OS는 데이터가 파일에 있고 액세스 할 때 동적으로로드한다는 것을 알고 있습니다. OS는 또한 파일에서 항상 다시로드 할 수 있기 때문에 다른 목적으로 메모리가 필요한 경우 RAM에서 데이터를 언로드 할 수 있습니다.

mmap python 모듈을 살펴보십시오.

+0

많은 감사의 말씀을 드리며 실험 해 보았습니다. 매우 빠르며 많은 도움을 받았습니다. –