ทำไมไฟล์ใหญ่ถึงดีกว่าไฟล์เล็กสำหรับคอนโซล?


18

ทำไมผู้พัฒนาเกมคอนโซลใช้ไฟล์ขนาดใหญ่เพื่อเก็บข้อมูลเกมแทนที่จะเป็นไฟล์ขนาดเล็กเช่นบนพีซี สตรีมในหน่วยความจำน้อยลงหรือไม่ ต้องการเข้าถึงต้นไม้ไฟล์หลายครั้งหรือไม่ เหตุผลอื่น?


อาจเป็นแบบอะนาล็อกในโลกของเว็บ: CSS Sprites
Nick T

CSS sprites เป็นข้อเสียที่น่ารังเกียจของการใช้ HTTP เก่าที่เป็นสนิมซึ่งเห็นได้ชัดว่าทำให้เซิร์ฟเวอร์ไม่สามารถส่งทรัพยากรจำนวนมากด้วยการเชื่อมต่อเดียว ฉันต้องการมาตรฐานใหม่
Kos

1
@Kos ต้องการของคุณได้รับการได้รับแม้จะน่าเสียดายที่ยังไม่ได้ใช้
Phihag

ขอบคุณสำหรับสิ่งนี้! ฉันต้องการอบเค้กให้พวกเขาทำงานเร็วขึ้น
Kos

คำตอบ:


37

การมีไฟล์ขนาดใหญ่ไฟล์เดียวมีประโยชน์เล็กน้อยต่อประสิทธิภาพการทำงานโดยไม่คำนึงถึงแพลตฟอร์ม เกมพีซีหลายเกมใช้ไฟล์ขนาดใหญ่เช่นกัน

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

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

  • การบีบอัดข้อมูลโดยทั่วไปจะมีประสิทธิภาพมากกว่าในไฟล์ขนาดใหญ่ไฟล์เดียว

โปรดทราบว่าการหลีกเลี่ยงการค้นหานั้นมีประสิทธิภาพมากในการเร่งความเร็วในการโหลด ฮาร์ดไดรฟ์ทั่วไปอาจมีเวลาในการค้นหา 10 มิลลิวินาทีและอัตราการถ่ายโอน 100MB / s สมมติว่าคุณต้องโหลดไฟล์ 100 shader ด้วยขนาดรวม 1MB หากคุณต้องค้นหาแต่ละคนมันจะใช้เวลาหนึ่งวินาทีในการโหลดพวกเขาทั้งหมด ด้วยการค้นหาเพียงครั้งเดียวคุณกำลังมองหาที่ 20ms เพื่อโหลดทั้งหมด

แน่นอนว่าเครื่องเล่นบางตัวนั้นไม่มีฮาร์ดไดรฟ์และออปติคัลไดรฟ์มีประสิทธิภาพในการค้นหาที่แย่กว่าดังนั้นผู้ที่ใช้ฮาร์ดดิสก์อาจใช้เวลา 5 วินาทีหรือมากกว่าในการโหลด DVD เมื่อค้นหา คอนโซลยังมีหน่วยความจำน้อยกว่าสำหรับใช้เป็นแคชมากกว่าพีซีดังนั้นจึงมักโหลดข้อมูลบ่อยขึ้น


9
คำตอบที่ดีมาก จนถึงจุดที่มีตัวอย่างของการค้นหาหนึ่งไฟล์เทียบกับหลายไฟล์
William Mariager

1
นอกจากนี้สำหรับเกมออนไลน์ที่มีการแข่งขันกันมันเร็วกว่ามาก (และใช้พื้นที่ดิสก์น้อยกว่ามาก) เพื่อตรวจสอบว่าผู้เล่นไม่ได้แก้ไขไฟล์ขนาดใหญ่เพียงไฟล์เดียว
เทรเวอร์พาวเวล

คำหลักของ Google: ระบบไฟล์เสมือน นอกจากนี้ยังมีความต้องการที่ดีตามที่ระบุไว้สำหรับระบบไฟล์เสมือนดูเหมือนจะบ่งบอกว่าระบบไฟล์ที่ไม่เสมือนสามารถใช้บางมากขึ้นขัด :(.
คอส

อย่างไรก็ตามนี่เป็นสิ่งที่ไม่ดีสำหรับพวกเราที่ใช้ SSD เราไม่สามารถย้ายสิ่งของที่ไม่ค่อยได้โหลดไปสู่ ​​HDD เพราะข้อมูลเกมทั้งหมดอยู่ในไฟล์ขนาดใหญ่ พูดเพื่อว้าวฉันไม่เคยไปที่นั่นเลย ฉันแค่ย้ายไฟล์นั้นออกจาก SSD ไม่สามารถพูดได้ ... CoD 4
Mircea Chirea

6

นอกเหนือจากคำตอบที่ดีมากที่ได้รับจากอดัมฉันอยากจะชี้ให้เห็นปัจจัยสำคัญอื่น ๆ :

  1. ไฟล์ที่น้อยกว่าที่คุณมีได้ง่ายกว่าคือการปรับใช้แอปพลิเคชันของคุณ นี่เป็นเรื่องจริงโดยเฉพาะถ้าคุณต้องการปรับใช้แอปพลิเคชันของคุณบนแพลตฟอร์มมือถือเช่น iOS, Android หรือ Windows Phone แม้ว่าในกรณีที่เป็น Windows Phone คุณยังสามารถมีไฟล์ได้มากเท่าที่คุณต้องการเนื่องจากไฟล์ XAP ที่ใช้สำหรับการปรับใช้เป็นเพียงไฟล์ซิป

  2. การมีทรัพย์สินทั้งหมดของคุณไว้ในไฟล์เดียวทำให้มั่นใจได้ว่าพวกเขากำลังดาวน์โหลด / อ่าน "ชิ้น"ทั้งหมด นักเล่นเกมหลายคนจะแก้ตัวคุณถึงความล่าช้าที่เห็นได้ชัดสำหรับการดาวน์โหลดเนื้อหาหรือเปิดออกก่อนที่เกมจะเริ่ม แต่พวกเขาจะไม่ยอมผ่อนปรนตราบใดที่พวกเขาต้องเผชิญกับการหยุดพักชั่วคราวเล็กน้อยในระหว่างเกม แน่นอนคุณสามารถแคชทรัพยากรของคุณล่วงหน้าใน RAM แต่การโหลดพวกเขา "เป็นชิ้น ๆ " ยังคงง่ายกว่าสำหรับวัตถุประสงค์นี้มากกว่าการโหลดพวกเขาในแต่ละไฟล์


ฉันได้พัฒนา Android และ BlackBerry และไม่เคยเจอปัญหากับการมีไฟล์ขนาดเล็กมากเกินไป ฉันไม่ทราบถึงประโยชน์ของไฟล์ขนาดใหญ่จนถึงตอนนี้ ...
ADB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.