Gói nhiều con trỏ làm cho emacs chạy chậm


9

Tôi đang sử dụng gói Nhiều con trỏ trong một tệp html và thật tuyệt vời đối với một vài con trỏ nhưng nếu tôi tạo hơn 30 hoặc 50 con trỏ thì sẽ rất chậm và chỉ mất khoảng năm hoặc sáu giây để di chuyển con trỏ.
Tôi đã sử dụng sai hay chỉ là nó chưa được chuẩn bị để tạo ra nhiều con trỏ đó?.


2
Nó phụ thuộc vào những gì đang diễn ra trong bộ đệm - một số bộ đệm khó khăn hơn đối với nhiều con trỏ của Magnar. Đôi khi tôi có thể có vài trăm mà không bị chậm lại đáng kể, và đôi khi chỉ một vài trong (giả sử wdired-mode) gây ra sự chậm lại. Có một yêu cầu tính năng mở - debbugs.gnu.org/cgi/orpreport.cgi?orms=22873 - để di chuyển nhiều khả năng con trỏ vào mã nguồn C, nhưng hiện tại nó vẫn đang là một cuộc thảo luận. Một trong những điểm bán hàng được đề xuất của tôi cho nhóm phát triển Emacs là tốc độ tăng tiềm năng nếu nó được đưa vào cơ sở mã C.
luật

3
Tôi không có giải pháp nhưng cũng muốn xác nhận sự chậm chạp tương tự đối với tôi. Tôi sẽ không ngạc nhiên nếu vấn đề bắt nguồn từ các vấn đề khóa phông chữ. Khi tôi điều chỉnh khóa phông chữ trên toàn cầu, các con trỏ lại trở nên linh hoạt.
Người dùng Emacs

1
... trong trường hợp đó, nhiều con trỏ sẽ không gây ra sự chậm lại trực tiếp (ngay cả khi sự chậm chạp chỉ trở thành một yếu tố khi bạn sử dụng nó). Tôi sẽ M-x profiler-startvà làm một loạt các thứ chậm và sau đó M-x profiler-report, và tiếp tục đi sâu vào (các) mục chiếm phần lớn thời gian của CPU cho đến khi bạn có thể cách ly nó với một thư viện cụ thể (nếu có); sau đó thử vô hiệu hóa thư viện đó. Đừng quên dừng trình hồ sơ khi bạn hoàn thành nó.
phils

Câu trả lời:


5

Một danh sách các chế độ nhỏ không chơi tốt với nhiều chế độ con trỏ có thể được đặt qua mc/unsupported-minor-modes. Bất kỳ chế độ nào được thêm vào danh sách này sẽ bị vô hiệu hóa khi vào nhiều chế độ con trỏ, chúng sẽ được bật lại sau khi bạn thoát khỏi nhiều chế độ con trỏ.

Bạn có thể thêm một mục vào danh sách này như vậy

(add-to-list 'mc/unsupported-minor-modes 'flyspell-mode)

Điều này tạo ra sự khác biệt lớn đối với khả năng đáp ứng của nhiều chế độ con trỏ. Tôi thấy hai chế độ nhỏ có tác động lớn nhất là chế độ linum và flyspell.


Nếu ai đó có thể thử và giải thích tại sao flyspell làm cho mọi thứ chậm lại (hoặc đưa ra một công thức ngắn gọn để tái tạo sự chậm chạp với flyspell), có lẽ chúng ta có thể thử và khắc phục vấn đề.
Stefan

1
Tôi đã cố gắng để hồ sơ sự chậm chạp, nhưng không thể tìm thấy bất kỳ mô hình nhất quán. Điều đó được nói rằng sự chậm chạp được giới thiệu bởi flyspell không phải là quá tệ, mô-đun tôi tìm thấy tồi tệ hơn nhiều là chế độ linum. Tắt chế độ linum cho phép tôi đi từ 30 con trỏ cùng lúc lên hơn 600.
Charles Ritchie

Một công thức tái tạo sẽ đi một chặng đường dài.
Stefan

1
Cảm ơn bạn vì sự giúp đỡ!. có vẻ như đây là vấn đề Chế độ thụt lề và chế độ Linum trong đó các chế độ mà tôi phải vô hiệu hóa (Tôi đã vô hiệu hóa hướng dẫn thụt lề và thay thế Linum bằng nlinum). Bây giờ tôi có thể có hàng trăm con trỏ mà không có độ trễ.
Fabman

0

... hơn 30 hoặc 50 con trỏ, nó bị chậm khủng khiếp ....

Đây là một giải pháp tạm thời: điều chỉnh biến này

mc/max-cursors

đến một giá trị nhỏ hơn 30 như một cách giải quyết. Mặc định là không, có nghĩa là không có giới hạn. Con số thực tế để khôi phục tốc độ phụ thuộc vào loại bộ đệm, phông chữ được sử dụng và bất cứ thứ gì khác đang chạy vào thời điểm đó. Trong mọi trường hợp, vấn đề bạn đang gặp phải đã được báo cáo rộng rãi.

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.