블록 3

메모리 할당이 어떻게 작동하는지에 대한 매우 직관적인 단계별 시각적 가이드

메모리 할당은 프로그램이 메모리를 사용하는 방식에서 필수적인 부분입니다. 프로그램은 메모리를 요청하는 malloc()과 메모리를 반환하는 free()와 같은 함수를 사용합니다. 단순 할당자는 마지막 할당이 끝난 위치만 추적하고 다음 할당을 시작하지만 메모리 누수가 발생할 수 있습니다. 더 나은 얼로케이터는 할당된 메모리와 사용 가능한 메모리를 추적하여 메모리를 해제할 수 있도록 합니다. 그러나 더 큰 요청을 충족할 수 없는 작은 여유 블록이 있는 경우 조각화가 여전히 발생할 수 있습니다. 전체 할당, 메모리 분할, 인라인 부기 등의 기술은 조각화를 줄이고 할당 효율을 높이는 데 도움이 됩니다. 전반적으로 메모리 할당은 속도, 공간 사용량, 조각화 사이의 균형을 맞춰야 하는 복잡한 작업입니다.원문: htt..

Hacker News 2023.05.23

미네테스트: 오픈 소스 복셀 게임 엔진

미네테스트는 오픈 소스 복셀 게임 엔진으로, 플레이어가 여러 게임 중에서 선택하거나 창의적으로 빌드하거나 다른 플레이어와 대결할 수 있습니다. Windows, macOS, GNU/Linux, FreeBSD, OpenBSD, DragonFly BSD 및 Android에서 사용할 수 있습니다. 이 게임 엔진은 62,000 × 62,000 × 62,000 블록으로 구성된 거대한 맵을 제공하며, 플레이어는 31,000 블록을 채굴하거나 31,000 블록을 건설할 수 있습니다. 또한 멀티플레이를 지원하므로 플레이어는 혼자서, 친구와 로컬로, 또는 서버에서 수십 명의 플레이어와 온라인으로 플레이할 수 있습니다. 이 엔진에는 다양한 고속 맵 생성기가 포함되어 있으며, 플레이어는 이를 모드로 설치할 수 있습니다. 개발..

Hacker News 2023.05.01

SQLite를 사용한 가장 미친 짓: 부분 파일 중복 제거

이 게시물의 작성자는 부분적인 파일 중복 제거를 위해 SQLite를 사용한 방법을 설명합니다. Apple 파일 시스템에는 데이터 중복 제거 기능이 일부 지원되므로 추가 디스크 공간을 사용하지 않고도 파일의 복사본 복제본을 만들 수 있다고 설명합니다. 저자는 동일한 게임 엔진을 사용하는 여러 게임이 공통적으로 많은 지원 파일을 가지고 있는 경우가 많기 때문에 이 기능을 게임 볼륨에 사용하고자 했습니다. 이를 추적하는 것은 어렵지 않다고 설명하지만 부분적으로 일치하는 경우는 어떨까요? 그런 다음 저자는 크기 및 콘텐츠 해시 열이 있는 파일 테이블과 각 파일의 각 할당 블록 해시가 있는 블록 테이블을 포함하는 데이터베이스의 최종 설계에 대해 설명합니다. 또한 해시 값이 64비트로 잘린 암호화 해시이며 정수로 ..

Hacker News 2023.03.27