สิ่งที่เปลี่ยนแปลงมุมมองรายการตัวค้นหาใน Lion เพื่อทำให้ "คำนวณทุกขนาด" เร็วขึ้นอย่างมาก


10

ตั้งแต่ก่อนที่ Mac OS X จะมาถึงที่เกิดเหตุเราสามารถถาม Finder เพื่อคำนวณขนาดทั้งหมดเพื่อกำหนดผลรวมพื้นที่ขนาดไฟล์ที่สามารถอ่านได้ทั้งหมดในแต่ละโฟลเดอร์สำหรับหน้าต่าง Finder ที่เป็นปัญหา

Finder - มุมมองรายการ - แสดงตัวเลือกมุมมอง - คำนวณทุกขนาด

ฉันได้ทดสอบการปรับขนาดมุมมองรายการของโฟลเดอร์ใน Mac หลายเครื่องซึ่งไม่สำคัญว่า SSD จะมีอยู่หรือไม่ แต่ Lion นั้นเร็วขนาดการคำนวณฉันอยากรู้อยากเห็นถ้ามีโครงสร้างแคชข้อมูลใหม่หรือ Finder กำลังใช้ ข้อมูลเมตาดาต้าจาก Spotlight หรือฐานข้อมูลที่คล้ายกันเพื่อเร่งการคำนวณนี้อย่างมาก


1
คุณไปที่หน้าต่างนั้นที่ไหน ตามปุ่ม "ใช้เป็นค่าเริ่มต้น" ที่ด้านล่างดูเหมือนหน้าต่าง "แสดงตัวเลือกมุมมอง" (<kbd> ⌘J </kbd>) แต่ฉันไม่สามารถแสดงอะไรในส่วนด้านล่าง
Cajunluke

1
@CajunLuke คุณต้องเปลี่ยนมุมมองหน้าต่างเป็นรายการก่อนเปิดหน้าต่าง "แสดงตัวเลือกมุมมอง"
pdd

คำตอบ:


3

ฉันไม่ได้สังเกตว่า Lion จะเร็วกว่าในการคำนวณขนาดโฟลเดอร์ (และแพ็คเกจ / มัด) ในครั้งแรกที่คำนวณขนาดในโฟลเดอร์ อย่างไรก็ตามการคำนวณที่ตามมาในโฟลเดอร์เดียวกันนั้นดูเหมือนจะเร็วกว่ามาก

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

เนื่องจาก Finder กำลังแคชขนาดโฟลเดอร์ที่คำนวณไว้ก่อนหน้านี้อย่างเห็นได้ชัดจึงเป็นไปได้ว่ามันจะคำนวณขนาดใหม่สำหรับโฟลเดอร์ที่เปลี่ยนไปนับตั้งแต่ครั้งสุดท้ายที่คำนวณ


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

หลังจากผ่านไปหลายเดือนในการสังเกตอย่างใกล้ชิดคุณถูกต้องทั้งหมด กลไกการแคชตอนนี้ดีมากสำหรับ Macs ที่ฉันใช้มาระยะหนึ่งแล้วข้อมูลนี้เกือบจะถูกต้องและทันที เฉพาะใน mac ใหม่หลังจากติดตั้งใหม่หรือรวมกลุ่มเป็นความเร็วเก่าที่สังเกตได้เนื่องจากระบบปฏิบัติการมีการรวบรวมข้อมูลทั้งหมด
bmike

7

ก่อนหน้า Lion คอลัมน์ขนาดไฟล์ใน Finder.app จะแสดงขนาดไฟล์แต่ละไฟล์ที่ต้องการบนฮาร์ดดิสก์ไม่ใช่ขนาดไฟล์ที่แน่นอน ตัวอย่างเช่นไฟล์ 1 ไบต์ถูกแสดงเป็น 4 KB เพราะจริงๆแล้วพวกเขาใช้พื้นที่มากถึง 4 KB บนระบบที่จัดรูปแบบ HFS ไม่มีวิธีง่ายๆในการดูขนาดไฟล์จริงของ 1 ไบต์นอกเหนือจากการเปิดไฟล์› รับข้อมูล (หรือใช้แอพอื่นเช่น Terminal.app แล้วใช้ls -lsaหรือเปลี่ยน Finder.app เช่นTotalFinder.app )

(ย้อนกลับไปในวันนี้ฉันรายงานสิ่งนี้ว่าเป็นข้อผิดพลาด 8926275 บนbugreport.apple.com )

ในฐานะของ Lion พฤติกรรมนี้ได้รับการแก้ไขและคอลัมน์ขนาดไฟล์จะแสดงขนาดไฟล์ที่แน่นอนสำหรับแต่ละไฟล์มากกว่าขนาดที่จัดสรรไว้ในฮาร์ดดิสก์ (ซึ่งขึ้นอยู่กับระบบไฟล์อยู่แล้ว)

เนื่องจากขนาดเหล่านี้เป็นตัวเลขเดียวกันกับที่คุณได้รับจากlsไบนารีในเทอร์มินัลจึงมีประสิทธิภาพในการคำนวณมากขึ้น


1
นี่คือรายละเอียดที่ยอดเยี่ยมเช่นกัน เมื่อ SSD กลายเป็นที่แพร่หลายมากขึ้นและพื้นที่เก็บข้อมูลมีความซับซ้อนมากขึ้นด้วยสแนปชอตฉันคิดว่ามันผ่านมานานแล้วเนื่องจากหยุดกังวลเกี่ยวกับพื้นที่ว่างที่อินสแตนซ์เฉพาะของไฟล์ครอบครองและกังวลขนาดของไฟล์
bmike

ฉันไม่เข้าใจสิ่งนี้ นั่นเป็นวิธีที่มีประสิทธิภาพมากขึ้น? การstat(2)โทรครั้งเดียวจะไม่รับผิดชอบต่อการรับทั้งสองหมายเลขหรือไม่ และls(1)ไม่แสดงขนาดจริงของบันเดิล / แพ็คเกจ / โฟลเดอร์เลยดังนั้นฉันจึงไม่รู้ว่าทำไมมันถึงเกี่ยวข้องกัน
Ken

@Ken lsแสดงขนาดไฟล์ที่ใช้ได้กับไฟล์ปกติ statสามารถทำเช่นเดียวกันสำหรับไฟล์เดียว ประเด็นของฉันคือ "งานพิเศษ" ที่จำเป็นในการคำนวณขนาดบันเดิล / แพ็คเกจ / โฟลเดอร์ตอนนี้จำเป็นสำหรับบันเดิล / แพ็คเกจ / โฟลเดอร์เท่านั้นไม่ใช่ไฟล์ปกติอีกต่อไป
งัด Bynens

Mathias: ใช่lsแสดงขนาดไฟล์สำหรับไฟล์ปกติไม่ใช่บันเดิล (นั่นคือสิ่งที่ฉันพูด) statมันเป็นเช่นนี้โดยการโทร "งานพิเศษ" ที่จำเป็นสำหรับไฟล์ปกติก่อนหน้านี้คืออะไร? การstatโทรครั้งเดียวส่งคืนทั้งบล็อก ( st_blocks) และไบต์ ( st_size)
Ken

1

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


ฉันจะดูว่าฉันจะได้รับ fs_events หกถั่วถ้ามันเป็นข้อมูลเมตาหรืออย่างอื่น ฉันชอบที่จะอ่านข้อมูลที่น่าสนใจ แต่ยังไม่มีหลักฐานโดยตรง
bmike

1

เริ่มต้นด้วย OS X Lion, Apple ได้เพิ่มฐานข้อมูล SQLite ที่ระบบปฏิบัติการใช้สำหรับการติดตามไฟล์ในคุณสมบัติของระบบเช่น Spotlight การเคียวรีจากฐานข้อมูล SQLite แทนที่จะตรวจสอบระบบไฟล์ทุกครั้งมากกว่าสาเหตุของการปรับปรุงประสิทธิภาพ การตรวจสอบ OS X Lion ของ John Siracusaอธิบายการเปลี่ยนแปลงระบบไฟล์ใน Lion อย่างละเอียด โดยเฉพาะอย่างยิ่งที่นี่คุณจะพบคำอธิบายเกี่ยวกับฐานข้อมูล SQLite ใหม่

หวังว่านี่จะช่วยได้


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