윈도우 시스템 프로그래밍
-
VirtualAlloc()의 메모리 할당에 대해개발/C·C++ 2024. 10. 12. 20:39
VirtualAlloc()이 과거에는(?) 메모리 할당이 64KB 단위로 이루어졌던 것 같다.과거의 데이터로 학습한 Perplexity의 대답도 그렇고윈도우 시스템 프로그래밍 관련한 강의(최근에 제작된 것)에서도 관련한 내용으로 학습했다. 개인적으로 정리를 하던 와중에 정말 VirtualAlloc()으로 메모리 요청을 했을 때정말 최소 할당 값이 64KB이 궁금했고 테스트를 해봤다.현대적인 윈도우는 메모리 풀링을 하지 않고 new / delete만 써도 메모리 최적화가 잘 된다는 실무자 전언을 들었다.메모리 풀링을 하는 몇 가지 이유는 작은 메모리 공간을 요청에 대한 오버헤드가 큰 것과 작은 메모리 공간에 대한 잦은 할당과 반복이 메모리 단편화를 만들 수 있기 때문이다. 이 이야기를 들어서일까 Virtu..
-
[윈도우 시스템 프로그래밍] 압축 파일 복사하기개발/C·C++ 2024. 8. 27. 23:17
파일을 윈도우에서 제공하는 API를 통해 메모리로 추상화를 하면 파일을 메모리처럼 사용할 수 있다. 텍스트 파일을 메모리로 추상화하면 strcpy_s() 함수를 이용해 텍스트 파일에 문자열을 복사할 수 있으며 같은 맥락에서 파일 복사 역시 memcpy_s() 사용해서 편하게 복사할 수 있다. 기본 과정은 어렵지 않고 세부적으로 함수를 호출할 때 플래그만 잘 넣어주면 된다. 예를 들어 읽기 속성으로 파일 핸들을 구했는데, 매핑 객체를 만드는 함수를 호출할 때 읽기/쓰기 플래그를 넣으면 정상적인 반환 값을 얻을 수 없다. 테스트 파일은 압축 파일이다. 압축 파일은 crc로 무결성을 검사하기 때문에 정확한 복사 여부를 확인할 수 있기 때문이다. 복사한 압축 파일을 풀어서 데이터를 열람할 수 있으면 된다. 다음..