ทำไมกลุ่มถึงสามารถเปิดไฟล์ขนาดใหญ่ได้เร็วกว่าโปรแกรมแก้ไขข้อความอื่น ๆ ?


10

เมื่อเปิดล็อกไฟล์ขนาดใหญ่ (ดีไม่ว่าขนาดใหญ่ แต่ 80mb ยังคงมากข้อความ!) ผมเคยใช้มักจะเป็นกลุ่มตั้งแต่มันโหลดพวกเขาเกือบจะทันที เครื่องมือแก้ไขข้อความอื่น ๆ เช่น Notepad, Notepad ++ เป็นต้นจะใช้เวลา> 10 วินาทีในการประมวลผลและโหลดไฟล์ อะไรคือสาเหตุของสิ่งนี้? อะไรที่ทำให้เสียงเรียกเข้าเร็วมาก?


8
เปิดใช้การเน้นไวยากรณ์และประหลาดใจว่าเสียงช้าจะกลายเป็นได้อย่างไร
Marco

11
สำหรับผู้ลงคะแนนอย่างใกล้ชิด: ฉันขอยืนยันว่าคำถามนี้สร้างสรรค์ - ดังที่คำตอบบ่งชี้ว่ามีเทคนิคต่าง ๆ ที่ Vim ใช้ซึ่งทำให้มีประสิทธิภาพมากกว่าไฟล์ขนาดใหญ่กว่าบรรณาธิการอื่น ๆ นั่นเป็นคำตอบที่เป็นรูปธรรมซึ่งสามารถได้รับการสนับสนุนจากข้อเท็จจริง / การอ้างอิง และฉันก็ไม่แน่ใจว่าทำไมคนถึงสามารถพิจารณาเรื่องนี้เป็นภาษาท้องถิ่น มีความแตกต่างที่ชัดเจนในวิธีการบรรณาธิการจัดการกับไฟล์ที่ส่งผลกระทบมากขึ้นกว่าพื้นที่ขนาดเล็กทางภูมิศาสตร์เป็นช่วงเวลาที่ระบุในเวลาหรือสถานการณ์ที่แคบเป็นพิเศษ
Bob

1
@Bob - ฉันล้มเหลวที่จะดูว่าคำตอบของคำถามนี้แก้ปัญหาใด ๆ ได้อย่างไร
Nifle

คำตอบ:


16

มีเทคนิคมากมายที่ผู้แก้ไขสามารถใช้เพื่อปรับปรุงการจัดการกับไฟล์ขนาดใหญ่

หนึ่งคือการทำงานกับสิ่งที่พวกเขาต้องการ นั่นหมายความว่าไม่พยายามแยกไฟล์ทั้งหมดสำหรับสิ่งต่าง ๆ เช่นการนับบรรทัดการวัดความกว้างการตัดคำการไฮไลต์ไวยากรณ์การตรวจสอบ XML การแสดง HTML เลิกทำ ฯลฯ มีปลั๊กอิน LargeFileสำหรับ Vim ซึ่งจะปิดการใช้งานคุณลักษณะต่างๆของ Vim เมื่อไฟล์ "ใหญ่" (ตามที่ผู้ใช้กำหนด) เปิดขึ้น การโหลดหน้าไฟล์ขนาดใหญ่ที่เร็วขึ้นบนวิกิของ Vim กล่าวถึงคุณสมบัติที่ปิดใช้งานบางส่วน: ละเว้นไฟล์ประเภท (สำหรับการเน้นไวยากรณ์ / การแยกวิเคราะห์) ปิดการเลิกทำสลับไปโหมดอ่านอย่างเดียว มีการเปลี่ยนแปลงอื่น ๆ เช่นกัน แต่ดูเหมือนว่าพวกเขาจะถูกกำหนดเป้าหมายไปยังการอนุรักษ์ความจำมากกว่าความเร็ว

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

น่าจะเป็น 2 ตัวที่ใหญ่ที่สุด แต่ก็มีอีกมาก


คุณมีการอ้างอิงสำหรับกลุ่มโดยใช้เทคนิคใด ๆ เหล่านี้หรือไม่?
slhck

ฉันไม่สามารถแสดงความคิดเห็นเกี่ยวกับการแมปหน่วยความจำโดยเฉพาะ แต่สิ่งแรกสามารถทำได้อย่างแน่นอน แก้ไขที่กำลังจะมา
afrazier

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