ทำไมผู้พัฒนาเกมคอนโซลใช้ไฟล์ขนาดใหญ่เพื่อเก็บข้อมูลเกมแทนที่จะเป็นไฟล์ขนาดเล็กเช่นบนพีซี สตรีมในหน่วยความจำน้อยลงหรือไม่ ต้องการเข้าถึงต้นไม้ไฟล์หลายครั้งหรือไม่ เหตุผลอื่น?
ทำไมผู้พัฒนาเกมคอนโซลใช้ไฟล์ขนาดใหญ่เพื่อเก็บข้อมูลเกมแทนที่จะเป็นไฟล์ขนาดเล็กเช่นบนพีซี สตรีมในหน่วยความจำน้อยลงหรือไม่ ต้องการเข้าถึงต้นไม้ไฟล์หลายครั้งหรือไม่ เหตุผลอื่น?
คำตอบ:
การมีไฟล์ขนาดใหญ่ไฟล์เดียวมีประโยชน์เล็กน้อยต่อประสิทธิภาพการทำงานโดยไม่คำนึงถึงแพลตฟอร์ม เกมพีซีหลายเกมใช้ไฟล์ขนาดใหญ่เช่นกัน
คุณสามารถแคชออฟเซ็ตของแต่ละไฟล์ภายในไฟล์ขนาดใหญ่ได้ด้วยตนเองเพื่อหลีกเลี่ยงความจำเป็นในการอ่านรายการไดเร็กทอรีของระบบไฟล์ (ซึ่งอาจเกี่ยวข้องกับการค้นหาหลายครั้งต่อไฟล์ที่เปิดหากคุณพลาดแคช)
คุณสามารถควบคุมลำดับของข้อมูลภายในไฟล์ได้อย่างเต็มที่ดังนั้นคุณสามารถจัดเรียงเพื่อลดความจำเป็นในการค้นหาช้า
การบีบอัดข้อมูลโดยทั่วไปจะมีประสิทธิภาพมากกว่าในไฟล์ขนาดใหญ่ไฟล์เดียว
โปรดทราบว่าการหลีกเลี่ยงการค้นหานั้นมีประสิทธิภาพมากในการเร่งความเร็วในการโหลด ฮาร์ดไดรฟ์ทั่วไปอาจมีเวลาในการค้นหา 10 มิลลิวินาทีและอัตราการถ่ายโอน 100MB / s สมมติว่าคุณต้องโหลดไฟล์ 100 shader ด้วยขนาดรวม 1MB หากคุณต้องค้นหาแต่ละคนมันจะใช้เวลาหนึ่งวินาทีในการโหลดพวกเขาทั้งหมด ด้วยการค้นหาเพียงครั้งเดียวคุณกำลังมองหาที่ 20ms เพื่อโหลดทั้งหมด
แน่นอนว่าเครื่องเล่นบางตัวนั้นไม่มีฮาร์ดไดรฟ์และออปติคัลไดรฟ์มีประสิทธิภาพในการค้นหาที่แย่กว่าดังนั้นผู้ที่ใช้ฮาร์ดดิสก์อาจใช้เวลา 5 วินาทีหรือมากกว่าในการโหลด DVD เมื่อค้นหา คอนโซลยังมีหน่วยความจำน้อยกว่าสำหรับใช้เป็นแคชมากกว่าพีซีดังนั้นจึงมักโหลดข้อมูลบ่อยขึ้น
นอกเหนือจากคำตอบที่ดีมากที่ได้รับจากอดัมฉันอยากจะชี้ให้เห็นปัจจัยสำคัญอื่น ๆ :
ไฟล์ที่น้อยกว่าที่คุณมีได้ง่ายกว่าคือการปรับใช้แอปพลิเคชันของคุณ นี่เป็นเรื่องจริงโดยเฉพาะถ้าคุณต้องการปรับใช้แอปพลิเคชันของคุณบนแพลตฟอร์มมือถือเช่น iOS, Android หรือ Windows Phone แม้ว่าในกรณีที่เป็น Windows Phone คุณยังสามารถมีไฟล์ได้มากเท่าที่คุณต้องการเนื่องจากไฟล์ XAP ที่ใช้สำหรับการปรับใช้เป็นเพียงไฟล์ซิป
การมีทรัพย์สินทั้งหมดของคุณไว้ในไฟล์เดียวทำให้มั่นใจได้ว่าพวกเขากำลังดาวน์โหลด / อ่าน "ชิ้น"ทั้งหมด นักเล่นเกมหลายคนจะแก้ตัวคุณถึงความล่าช้าที่เห็นได้ชัดสำหรับการดาวน์โหลดเนื้อหาหรือเปิดออกก่อนที่เกมจะเริ่ม แต่พวกเขาจะไม่ยอมผ่อนปรนตราบใดที่พวกเขาต้องเผชิญกับการหยุดพักชั่วคราวเล็กน้อยในระหว่างเกม แน่นอนคุณสามารถแคชทรัพยากรของคุณล่วงหน้าใน RAM แต่การโหลดพวกเขา "เป็นชิ้น ๆ " ยังคงง่ายกว่าสำหรับวัตถุประสงค์นี้มากกว่าการโหลดพวกเขาในแต่ละไฟล์