단일 파일은 조직을 위해 파일 시스템에 의존하는 것보다 훨씬 더 깨끗하고 물리적 디스크 공간을 덜 차지할 수 있습니다. 각 청크에 링크하기 위해 파일 시작 부분에 오프셋 테이블을 유지하십시오.
압축과 관련하여 런 랭스 인코딩을 적용하면 확실히 파일 크기가 줄어들고 Minecraft와 같은 경우 순차적으로 동일한 블록이 많이 생성됩니다. 보너스로 플래터 드라이브를 사용하는 컴퓨터에서 더 빨리로드됩니다. 두 블록은 각 블록에 대한 바이트를 읽지 않고 수천 블록과 같을 수 있기 때문입니다. 효과적인 실행 길이 인코딩을위한 빠른 팁은 다음과 같습니다. 명령 바이트를 사용합니다 (예 : 0x00). 다른 모든 바이트는 블록과 연관되지만 명령 바이트는 정보의 비 블록 비트를 나타냅니다.기존의 실행 길이 인코딩은 다음과 같습니다
Source: AAAABBBBBBBCDDDEFA
Destination: 0x00044100074243444444454641.
Plaintext: ..A..BCDDDEFA
이 데이터의 "대리석"섹션에서 뚜렷한 장점이 있습니다
Source: AAAABBBBBBBCDDDEFA
Destination: 0x0441074201430344014501460161
Plaintext: .A.B.C.D.E.F.A
의 크기를 증가시킬 것 시퀀스를 생략 명령 바이트를 사용.
다른 점은 little endian 형식 임에도 불구하고 midi 형식과 비슷한 숫자를 저장하는 시스템을 사용하는 것이 좋습니다. 인터넷 검색을 저장하기 위해 실제로 의미하는 것은 번호를 저장하는 데 사용하는 각 바이트에 대해 약간 희생하는 것입니다. 8 번째 비트가 설정되면 숫자에 또 다른 바이트가 있음을 의미하고 캐스 캐 이드합니다. 예 :
Storing: 65
Stored as: 0x41 (01000001) //The eighth bit is not set, so this number only occupies 7 bits.
Storing: 192
Stored as: 0xC081 (11000000 10000001) //The eighth bit of the first byte is set, so the following byte is part of the number. The second byte doesn't have the eighth bit set, so the number ends there.
Storing: 612453
Stored as: 0x72D825 (11100101 1011000 00100101) //The eighth bit of the first two bytes are set, and the third is not, so this number occupies 3 bytes.
나는 약간의 통찰력을 제공하는데 도움이되기를 바랍니다.
[gamedev.se] (http://gamedev.stackexchange.com/)에서 더 좋은 질문 일 수 있습니다. –