답변은 자주 사용하는 방법에 따라 다릅니다. 전체 운영 체제는 서로 다른 사용 시나리오 간의 큰 상충 관계입니다. NTFS 파일 시스템의 경우 블록 크기를 4k로 설정하고 MTFS에서는 블록 크기보다 작은 파일을 저장하는 NTFS, 파일 수, 파일 수, 조각화 등을 언급 할 수 있습니다.
대용량 파일을 작성하려는 경우 블록 64k의 크기가 좋을 수도 있습니다. 많은 양의 데이터를 읽으려는 경우입니다. 소량의 데이터를 읽으면 작은 크기가 좋습니다. OS는 4k 페이지에서 작동하므로 4k가 좋습니다. 압축과 암호화는 SQL과 Exchange는 물론 4k 페이지 (iirc)에서만 작동합니다.
작은 파일 (< 4k)을 쓰면 MFT 안에 저장되므로 "ekstra jump"를 할 필요가 없습니다. 이것은 쓰기 작업 (읽기에는 MFT 캐시가있을 수 있음)에서 특히 유용합니다. MFT는 파일을 순서대로 (예 : 블록 1000-1010,2000-2010) 저장하므로 조각화로 인해 MFT가 커집니다. parallell에서 디스크에 파일을 쓰는 것이 주요 원인 중 하나이며, 다른 하나는 파일을 삭제하는 것입니다. 파일에 필요한 크기를 미리 할당 할 수 있으며 Windows는 조각화를 막기 위해 디스크에서 적절한 위치를 찾으려고합니다. O&O Defrag과 같은 실시간 조각 모음 프로그램도 있습니다.
Windows는 binarystream을 디스크의 실제 위치에 거의 직접 매핑하므로 다른 읽기/쓰기 메소드를 사용하면 다른 요인만큼 성능이 향상되지 않습니다. 최대 속도 프로그램의 경우 디스크에 직접 메모리 매핑을위한 기술을 사용하십시오. http://en.wikipedia.org/wiki/Memory-mapped_file
디스크의 캐싱을 높이려면 Windows의 장치 관리자 (하드 디스크) 아래에 옵션이 있습니다. 이것은 컴퓨터가 bluescreens 또는 loose power 인 경우 ut가 파일 시스템을 손상시킬 수 있기 때문에 위험하지만, 더 작은 파일 (그리고 모든 쓰기)을 작성할 때 성능이 크게 향상됩니다. 디스크가 사용 중이면 검색 시간이 줄어들어 특히 유용합니다. Windows는 기본적으로 이동하는 방향으로 모든 응용 프로그램을 제공하기 위해 앞뒤로 표면을 통해 하드 디스크 헤드를 움직이는 것을 의미하는 엘리베이터 알고리즘을 사용합니다.
희망이 도움이됩니다. :)
고마워요! 최대한 빨리 (그리고 병렬로) 대용량 파일 (웹 또는 다른 소스를 통해 스트리밍)을 작성하고 싶습니다! 나는 이것을 C#에서 코딩하고있다. –