giới hạn thực tế về kích thước tập tin org-mode?


13

Tôi có một tệp chế độ org đang chạy khoảng 6.000 dòng với hàng trăm tiêu đề cấp cao nhất. Nó bắt đầu mất khoảng một phút để tải hoặc lưu, và đôi khi nó gửi emacs vào cỏ dại và tôi phải buộc phải bỏ nó.

Có ai trong số các bạn nghĩ rằng đây là một tệp quá lớn để xử lý thực tế ở chế độ org không? Bạn có kinh nghiệm với các tập tin lớn hơn? Bạn có kinh nghiệm các loại chậm trễ? Hoặc tôi nên tìm kiếm nguyên nhân của sự chậm chạp ở nơi khác, giống như tất cả các gói emacs khác mà tôi đã cài đặt? Có lẽ tôi chỉ yêu cầu quá nhiều emacs nói chung.

Đây là với homebrew emacs 24.4 trên Mac OS X Mavericks.


2
Bạn đang sử dụng một cái gì đó khác cùng với nó, như thế linum-modenào? Những chế độ nhỏ đặc biệt nào khác đang hoạt động (nếu có)?
luật

Tôi có quá nhiều thứ để liệt kê ... Tôi bắt đầu với emacs-live (hộp công cụ clojure) và đã tải một cách bừa bãi mọi gói trông thú vị mà tôi có thể tìm thấy trong elpa và marmalade. Tôi sẽ làm một bài kiểm tra với bản cài đặt emacs trần; Nếu chế độ org hoạt động tốt thì tôi sẽ bắt đầu chia đôi gói của mình. Có thể là một thời gian tốt để bắt đầu lại.
Reb.Cabin

2
Tập tin này không quá lớn để xử lý. Tôi có kinh nghiệm với tệp 7000 github.com/grettke/home/blob/master/ALEC.org và rất ít tiêu đề. Tôi không có kinh nghiệm tải hoặc tiết kiệm chậm. Tôi bị chậm lại khi tôi sụp đổ tiêu đề để tôi chạy theo #+STARTUP: showeverything. Bạn có Emacs mới nhất đi kèm với chế độ org mới nhất. Bắt đầu Emacs với emacs -Qvà từ từ thêm các gói trở lại để thu hẹp gói vi phạm làm chậm mọi thứ. Tôi đang sử dụng "24.4.1" và "8.2.10" emacs và org.
grettke

Câu trả lời:


18

Một trong những tính năng ít được biết đến của Emacs là nó có một hồ sơ! Giả sử tập tin của bạn được gọi foo.org, sau đó bạn có thể làm điều này:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Sau khi bạn thực hiện tất cả các Emacs sẽ bật lên một bộ đệm với các số liệu thống kê về việc sử dụng CPU (bạn cũng có thể chọn cấu hình bộ nhớ hoặc cả CPU và bộ nhớ, khi bạn khởi động trình lược tả). Điều này sẽ cung cấp cho bạn một số manh mối về việc các hàm mất nhiều thời gian nhất để thực thi.


Có vẻ như nếu bộ đệm của tôi có hơn 7k dòng, nó có các khoảng dừng rất dài. Bạn có biết tại sao lại như vậy không?
dùng8128167

@ user89861 Dự đoán đầu tiên của tôi sẽ là phông chữ, nhưng không cố gắng để hồ sơ thì thật khó để nói.
wvxvw

OK, đây là những gì tôi nhận được cho một báo cáo hồ sơ: + timer-event-handler 408694 96% + thực thi lệnh 14634 3% + ... 1480 0% + redisplay_iternal (hàm C) -hook 1 0%
dùng8128167

@ user89861 xem có bất kỳ biến nào trong hai biến sau không: stackoverflow.com/a/11670718/5691066 sẽ cho bạn một gợi ý về thời gian mà nó đang chạy.
wvxvw

3

Tôi đã loại bỏ mọi gói ra khỏi môi trường emacs của mình và bây giờ chế độ org chạy tốt trên tệp 6.000 dòng của tôi.

Một số thứ khác tôi đã tải là gây ra vấn đề. Tôi sẽ phải chia đôi cài đặt gói của mình để tìm ra nó là gì, nhưng chế độ org có vẻ ổn.


Đã cài đặt mới emacs-live - điều đó không gây ra vấn đề.
Reb.Cabin

Nếu câu hỏi của bạn đã được trả lời thỏa đáng và bạn không cần câu trả lời bổ sung, vui lòng xem xét chấp nhận câu trả lời của bạn để câu hỏi này được xóa khỏi danh sách các câu hỏi chưa được trả lời.
vẽ

@Drew - Có một khoảng thời gian chờ đợi để chấp nhận câu trả lời của chính mình - đại loại như 36 hoặc 48 giờ.
luật

1
@lawlist: OK. Nhưng không có danh sách chờ đợi để suy nghĩ xem bạn có muốn xóa câu hỏi không vì câu hỏi và trả lời có thể không hữu ích / thú vị. ;-)
vẽ

3
câu hỏi đã khai quật điểm thú vị về trình hồ sơ, vì vậy câu hỏi có một tác dụng / tác dụng hữu ích :)
Reb.Cabin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.