ฉันต้องการเขียนข้อมูลบางอย่างจากการคำนวณซึ่งจะอ่านในภายหลังโดย Paraview (ไฟล์. vtu หรือ vtk)
เมื่อพูดถึงขนาดของไฟล์ฉันควรใช้รูปแบบ ASCII หรือรูปแบบไบนารีหรือไม่
ฉันต้องการเขียนข้อมูลบางอย่างจากการคำนวณซึ่งจะอ่านในภายหลังโดย Paraview (ไฟล์. vtu หรือ vtk)
เมื่อพูดถึงขนาดของไฟล์ฉันควรใช้รูปแบบ ASCII หรือรูปแบบไบนารีหรือไม่
คำตอบ:
หากกังวลเพียงอย่างเดียวของคุณคือขนาดไฟล์แล้วคุณต้องการไฟล์ไบนารี สำหรับตัวอย่างที่เป็นตัวอย่างสมมติว่าคุณกำลังเขียนเลขทศนิยมที่มีความแม่นยำสูง 1 คู่ไปยังไฟล์ สมมติว่าระบบไฟล์สามารถจัดการสิ่งนี้ได้อย่างสมบูรณ์แบบและถือไฟล์ส่วนหัวและช่องว่างภายในทั้งหมด 0
สำหรับไฟล์ไบนารีหมายเลขนั้นจะใช้ขนาดที่แน่นอนของตัวเลขใน RAM หรือ 8 ไบต์
ในรูปแบบ ASCII มันจะถือ:
สมมติว่ามันใช้เพียง 1 ไบต์สำหรับตัวอักษรนั่นคือ 22 ไบต์เพื่อเก็บหมายเลขเดียวกัน สิ่งนี้จะไม่นับตัวอักษรที่จำเป็นในการปรับลดจำนวนระหว่างตัวเลข (โดยปกติจะน้อยกว่า 1) ดังนั้นขนาดไฟล์สำหรับรูปแบบ ASCII จะใหญ่กว่าประมาณ 3 เท่า
คุณสามารถแลกเปลี่ยนขนาดไฟล์เพื่อความแม่นยำในไฟล์ที่จัดเก็บ (เก็บไว้เพียง 5-6 หลักในฐาน) แต่ขึ้นอยู่กับสิ่งที่คุณกำลังใช้งาน ข้อได้เปรียบหลักของ ASCII สำหรับการดีบั๊กหรือการผลิตข้อมูลที่มนุษย์อ่านได้
ในทางปฏิบัติคุณไม่ค่อยต้องการข้อมูลในไฟล์การสร้างภาพที่แม่นยำกว่าพูด 3 หลักที่ถูกต้อง ในกรณีนั้น ASCII อาจจะมีขนาดเล็กกว่ารูปแบบไบนารี หากคุณกำลังคิดเกี่ยวกับการเก็บถาวรดังนั้นการบีบอัดไฟล์ ASCII เหล่านี้น่าจะทำให้ได้ไฟล์ที่เล็กที่สุดที่คุณจะได้รับ
ที่กล่าวว่า Paraview อ่านรูปแบบ VTU ซึ่งมีรูปแบบไบนารีที่บีบอัด (อิงตาม XML แต่ข้อมูลจะถูกบีบอัด libz ก่อนแล้วจึง uuencoded อีกครั้งเพื่อให้ข้อความ ASCII) สำหรับไฟล์ทั่วไปสิ่งนี้จะบันทึกปัจจัย 4-10 สำหรับไฟล์ขนาดใหญ่วิธีนี้จะเป็นไปอย่างแน่นอน