วิธีที่เร็วกว่าในการรับ 'หมายเลขบรรทัดที่ตำแหน่ง pos' ในบัฟเฟอร์ขนาดใหญ่
ฟังก์ชั่นline-number-at-pos(เมื่อทำซ้ำประมาณ 50 ครั้ง) ทำให้เกิดการชะลอตัวลงอย่างเห็นได้ชัดในบัฟเฟอร์กึ่งใหญ่เช่น 50,000 บรรทัด - เมื่อจุดใกล้ถึงจุดสิ้นสุดของบัฟเฟอร์ เมื่อชะลอความเร็วลงฉันหมายถึงผลรวมทั้งหมดประมาณ 1.35 วินาที แทนที่จะใช้elispfunciton 100% เพื่อนับจำนวนบรรทัดและข้ามส่วนบนสุดของบัฟเฟอร์ฉันสนใจวิธีไฮบริดที่แตะเข้าไปในความสามารถ C ในตัวที่รับผิดชอบต่อหมายเลขบรรทัดที่ปรากฏบนโหมดบรรทัด หมายเลขบรรทัดที่ปรากฏบนโหมดบรรทัดเกิดขึ้นที่ความเร็วแสงโดยไม่คำนึงถึงขนาดของบัฟเฟอร์ นี่คือฟังก์ชั่นทดสอบ: (defmacro measure-time (&rest body) "Measure the time it takes to evaluate BODY. http://lists.gnu.org/archive/html/help-gnu-emacs/2008-06/msg00087.html" `(let ((time (current-time))) ,@body (message "%.06f" (float-time (time-since time))))) (measure-time (let* ( line-numbers (window-start (window-start)) (window-end (window-end))) (save-excursion (goto-char …