โฮมเพจ » ทำอย่างไร » เหตุใดจึงมีความแตกต่างอย่างมากระหว่าง 'ขนาด' และ 'ขนาดบนดิสก์'

    เหตุใดจึงมีความแตกต่างอย่างมากระหว่าง 'ขนาด' และ 'ขนาดบนดิสก์'

    ส่วนใหญ่ค่าสำหรับ 'ขนาด' และ 'ขนาดบนดิสก์' จะใกล้เคียงกับการจับคู่เมื่อตรวจสอบขนาดของโฟลเดอร์หรือไฟล์ แต่จะเกิดอะไรขึ้นถ้าทั้งสองมีความแตกต่างกันอย่างมาก ประกาศถามตอบ SuperUser ของวันนี้จะดูคำตอบของปัญหาที่ทำให้สับสนนี้.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    thelastblack ผู้อ่าน SuperUser ต้องการทราบว่าเหตุใดจึงมีความแตกต่างอย่างมากระหว่าง 'ขนาด' และ 'ขนาดบนดิสก์' สำหรับโฟลเดอร์ในการ์ด SD ในโทรศัพท์ของเขา:

    ดังที่คุณเห็นด้านล่างมีความแตกต่างอย่างมากระหว่างฟิลด์ 'ขนาด' และ 'ขนาดบนดิสก์' สำหรับโฟลเดอร์นี้ ทำไมเป็นอย่างนั้น?

    ฉันรู้ว่า 'ขนาดบนดิสก์' ควรมากกว่า 'ขนาด' เล็กน้อยเนื่องจากหน่วยการจัดสรรใน Windows แต่ทำไมถึงมีความแตกต่างกันมาก อาจเป็นเพราะไฟล์มีจำนวนมาก?

    BTW โฟลเดอร์นี้อยู่ในการ์ด SD ของโทรศัพท์ Android ของฉัน ภายในแอพนี้แผนที่ของฉันเก็บแผนที่ที่แคชไว้และแอพจะรับแผนที่จาก Google Maps.

    ดูภาพหน้าจอมีความแตกต่างอย่างมากระหว่าง 'ขนาด' และ 'ขนาดบนดิสก์' ดังนั้นสิ่งที่เกิดขึ้นที่นี่เพื่อทำให้เกิดสิ่งนี้?

    คำตอบ

    Bob ผู้สนับสนุน SuperUser มีคำตอบสำหรับเรา:

    ฉันจะสมมติว่าคุณกำลังใช้ระบบไฟล์ FAT / FAT32 ที่นี่เนื่องจากคุณพูดถึงว่านี่เป็นการ์ด SD NTFS และ exFAT ทำตัวคล้ายกับหน่วยการจัดสรร ระบบไฟล์อื่นอาจแตกต่างกัน แต่ระบบ Windows ไม่รองรับ.

    หากคุณมีไฟล์ขนาดเล็กจำนวนมากเป็นไปได้อย่างแน่นอน พิจารณาสิ่งนี้:

    • 50,000 ไฟล์
    • ขนาดคลัสเตอร์ 32 KB (หน่วยการจัดสรร) ซึ่งเป็นค่าสูงสุดสำหรับ FAT32

    ตกลงตอนนี้ ขั้นต่ำ พื้นที่ที่ใช้คือ 50,000 * 32,000 = 1.6 GB (ใช้ส่วนนำหน้า SI ไม่ใช่ไบนารีเพื่อทำให้คณิตศาสตร์ง่ายขึ้น) พื้นที่ที่แต่ละไฟล์ใช้บนดิสก์นั้นมีขนาดหน่วยการจัดสรรหลายเท่าเสมอและที่นี่เราสมมติว่าแต่ละไฟล์นั้นมีขนาดเล็กพอที่จะใส่ในหน่วยเดียวโดยมีพื้นที่เหลือ (เปล่า) เหลืออยู่.

    หากไฟล์แต่ละไฟล์มีค่าเฉลี่ย 2 KB คุณจะได้รับผลรวมประมาณ 100 MB แต่โดยเฉลี่ยคุณจะสูญเสีย 15x (30 KB ต่อไฟล์) โดยเฉลี่ยเนื่องจากขนาดหน่วยการจัดสรร.

    คำอธิบายเชิงลึก

    ทำไมสิ่งนี้ถึงเกิดขึ้น ระบบไฟล์ FAT32 จำเป็นต้องติดตามตำแหน่งที่เก็บไฟล์แต่ละไฟล์ หากต้องเก็บรายการของทุก ๆ ไบต์ตาราง (เช่นสมุดที่อยู่) จะเติบโตที่ความเร็วเดียวกับข้อมูล - และเสียพื้นที่มาก ดังนั้นสิ่งที่พวกเขาทำคือใช้ "การจัดสรรหน่วย" หรือที่เรียกว่า "ขนาดคลัสเตอร์" ไดรฟ์ข้อมูลถูกแบ่งออกเป็นหน่วยการจัดสรรเหล่านี้และเท่าที่ระบบไฟล์มีความเกี่ยวข้องจะไม่สามารถแบ่งย่อยได้ - ซึ่งเป็นบล็อกขนาดเล็กที่สุดที่สามารถจัดการได้ เหมือนกับที่คุณมีหมายเลขบ้าน แต่บุรุษไปรษณีย์ของคุณไม่สนใจว่าคุณมีห้องนอนกี่ห้องหรือที่อยู่ในนั้น.

    แล้วจะเกิดอะไรขึ้นถ้าคุณมีไฟล์ขนาดเล็กมาก? ระบบไฟล์ไม่สนใจว่าไฟล์นั้นคือ 0 KB, 2 KB หรือแม้แต่ 15 KB มันจะให้พื้นที่น้อยที่สุดเท่าที่จะทำได้ในตัวอย่างข้างต้นนั่นคือ 32 KB ไฟล์ของคุณใช้พื้นที่นี้เพียงเล็กน้อยเท่านั้นและส่วนที่เหลือก็สูญเปล่า แต่ก็ยังเป็นของไฟล์เหมือนห้องนอนที่คุณปล่อยให้ว่าง.

    ทำไมขนาดหน่วยการจัดสรรแตกต่างกัน มันจะเป็นการแลกเปลี่ยนกันระหว่างการมีตารางที่ใหญ่กว่า (สมุดที่อยู่เช่นบอกว่า John เป็นเจ้าของบ้านที่ 123 Fake Street, 124 Fake Street, 666 Satan Lane, ฯลฯ ) หรือเนื้อที่ที่สูญเปล่าในแต่ละหน่วย (บ้าน) . หากคุณมีไฟล์ที่มีขนาดใหญ่ขึ้นจะเหมาะสมกว่าที่จะใช้หน่วยการจัดสรรที่ใหญ่กว่า - เนื่องจากไฟล์ไม่ได้รับหน่วยใหม่ (เฮ้าส์) จนกว่าหน่วยอื่น ๆ จะเต็ม หากคุณมีไฟล์ขนาดเล็กจำนวนมากเอาล่ะคุณจะต้องมีโต๊ะขนาดใหญ่ (สมุดที่อยู่) อยู่แล้วดังนั้นอาจให้หน่วยเล็ก ๆ (บ้าน).

    หน่วยการจัดสรรขนาดใหญ่ตามกฎทั่วไปจะเปลืองพื้นที่มากถ้าคุณมีไฟล์ขนาดเล็กจำนวนมาก มักจะไม่มีเหตุผลที่ดีที่จะมีขนาดเกิน 4 KB สำหรับการใช้งานทั่วไป.

    การกระจายตัวของ?

    สำหรับการแยกส่วนการกระจายตัวไม่ควรเสียพื้นที่ในลักษณะนี้ ไฟล์ขนาดใหญ่อาจมีการแยกส่วนเช่นแบ่งออกเป็นหลายหน่วยการจัดสรร แต่ควรเติมแต่ละหน่วยก่อนที่จะเริ่มต้นไฟล์ถัดไป การจัดเรียงข้อมูลอาจประหยัดพื้นที่เพียงเล็กน้อยในตารางการจัดสรร แต่นี่ไม่ใช่ปัญหาเฉพาะของคุณ.

    การแก้ปัญหาที่เป็นไปได้

    ตามที่ gladiator แนะนำ 2345 ตัวเลือกที่แท้จริงของคุณ ณ จุดนี้คือการอยู่กับมันหรือฟอร์แมตใหม่ด้วยหน่วยการจัดสรรที่เล็กกว่า.

    การ์ดของคุณอาจได้รับการจัดรูปแบบใน FAT16 ซึ่งมีข้อ จำกัด น้อยกว่าในขนาดของตารางและดังนั้นจึงต้องใช้หน่วยการจัดสรรที่ใหญ่กว่ามากเพื่อที่จะจัดการกับปริมาณที่มากขึ้น (ด้วยขีด จำกัด สูงสุด 2 GB พร้อมหน่วยการจัดสรร 32 KB) มารยาทแหล่งที่มาของ Braiam หากเป็นเช่นนั้นคุณควรจะสามารถฟอร์แมตเป็น FAT32 ได้อย่างปลอดภัย.


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.