이진 대 ASCII 파일 크기


17

나중에 Paraview (.vtu 또는 vtk 파일)로 읽을 계산에서 일부 데이터를 작성해야합니다.

파일 크기에 관해서는 ASCII 형식이나 이진 형식으로 가야합니까?

답변:


20

파일 크기 만 걱정한다면 바이너리 파일이 필요합니다. 예를 들어, 1 배정도 부동 소수점 숫자를 파일에 쓰고 있다고 가정합니다. 파일 시스템이이를 완벽하게 처리 할 수 ​​있고 파일, 헤더 및 패딩을 모두 0으로 유지한다고 가정합니다.

이진 파일의 경우 해당 숫자는 RAM에서 숫자의 정확한 크기 또는 8 바이트를 사용합니다.

ASCII 형식에서는 다음을 보유합니다.

  • 밑면의 16 자리
  • 소수점 이하 1주기
  • 지수를 구분하는 1 자
  • 지수의 부호는 1 자
  • 지수에 대해 2-3 자

문자에 1 바이트 만 사용한다고 가정하면 동일한 숫자를 보유하는 22 바이트입니다. 숫자를 구분하는 데 필요한 문자는 계산하지 않습니다 (보통 1 이상). 따라서 ASCII 형식의 파일 크기는 약 3 배 더 큽니다.

저장된 파일의 정밀도를 위해 파일 크기를 교환 할 수 있지만 (베이스에는 5-6 자리 만 유지) 사용하는 파일에 따라 다릅니다. ASCII의 주요 장점은 사람이 읽을 수있는 데이터를 디버깅하거나 생성하는 것입니다.


3
과학 분야에서도 장기 보관 및 안정적인 공유가 중요하므로 비효율적 임에도 불구하고 ASCII CSV가 널리 보급 되어 권장 되는 이유입니다 (PDF) .
— horchler

2
또 다른 유용한 점은 ASCII CSV 인코딩이 효율적이지 않지만 ASCII 파일에서 zip, gzip 등과 같은 파일 압축 유틸리티를 사용하면 일반적으로 파일 크기가 이진 파일의 크기와 비슷한 크기로 줄어든다는 것입니다 .
— Brian Borchers

3
ASCII로 IEEE Double Precision 숫자를 출력 한 다음 다시 읽을 때 일부 입력 / 출력 라이브러리가 비트 재현성을 위해 비트를 가져 오기에 충분히주의하지 않기 때문에주의하십시오. 내 경험상 안전을 위해 17 또는 18의 십진수를 사용해야하는 경우가 있습니다. .
— Brian Borchers

5
horchler의 의견과 관련하여 : HDF5와 같은 잘 사용되는 표준화 된 개방형 바이너리 형식이 오랫동안 사용될 것이라고 확신합니다. 그것이 제가 개인적으로 추천하는 것입니다.
— AlexE

1
+ 정확성, 컴팩트 성, 마음의 평안 및 (특히) 속도를 위해 가능한 한 이진법을 고수합니다. 그런 다음 추가 압축이 필요한 경우 압축 할 수 있습니다. 내용을 시각적으로 읽을 수 있어야하는 경우 작은 프로그램을 작성할 수 있습니다. 반면에 시각적 인 것이 더 중요하고 Excel, R 등과 같은 임의의 프로그램으로 쉽게 전달되는 경우 CSV가 좋습니다.
— Mike Dunlavey

15

실제로는 유효 숫자 3 개보다 정확한 시각화 파일의 데이터가 거의 필요하지 않습니다. 이 경우 ASCII는 놀랍게도 바이너리 형식보다 더 컴팩트합니다. 보관에 대해 생각하고 있다면 이러한 ASCII 파일을 압축하여 얻을 수있는 가장 작은 파일을 생성 할 수 있습니다.

즉, Paraview는 압축 된 이진 형식 (XML 기반이지만 데이터는 먼저 libz 압축 된 다음 다시 uuencode되어 ASCII 텍스트를 생성 함) 인 VTU 형식을 읽습니다. 일반적인 파일에서는 4-10 배가 절약됩니다. 큰 파일의 경우 이것은 확실히 갈 길입니다.


2
나는 다른 답변과 대조적으로 이것을 투표했습니다. 나는 어느 쪽이든 강한 의견을 가지고 있지 않지만 여기에 좋은 지적이 있습니다.
— Bill Barth

또는 하위 비트를 명시 적으로 0으로 설정하고 이진을 압축하십시오.
— 제드 브라운

와우, 그것은 약간의 비트 인증이 필요합니다. 아니면 그렇게하는 기능이 있습니까? (float으로 캐스팅보다는 다시 기타 두 배로.)
— 볼프강 Bangerth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.