Câu hỏi Làm thế nào bạn có thể tăng tốc Eclipse?


Làm thế nào bạn có thể làm cho kinh nghiệm với Eclipse nhanh hơn?

Ví dụ: Tôi vô hiệu hóa tất cả các plugin tôi không cần (Mylyn, Subclipse,…).

Thay vì sử dụng plugin cho Mercurial, Tôi định cấu hình TortoiseHG như một công cụ bên ngoài.


1171


gốc


Cài đặt thêm RAM (4GB). Tôi hơi nghiêm túc. Eclipse chạy tốt trên một cửa sổ 3GB 7 hộp. Không quá nóng với ít bộ nhớ hơn.
Kiểm soát phiên bản sẽ là lựa chọn cuối cùng của plugin của tôi để vô hiệu hóa. Tôi đã tìm thấy Eclipse vẫn còn phần nào không đáng tin cậy khi nói đến việc giữ không gian làm việc đồng bộ với hệ thống tệp. Tôi không đổ lỗi cho bạn vì muốn các công cụ VC tốt hơn so với các công cụ trong các plugin hiện tại nhưng trước đây tôi đã bị Eclipse cắn trong lĩnh vực này. - Kelly S. French
Các câu trả lời ở đây đã giảm thời gian khởi động Eclipse của tôi từ 20 giây xuống dưới 4. - HDave
Eclipse Juno đã được siêu chậm đối với nhiều người, những thứ như chuyển đổi biên tập viên vv. Bây giờ có một loạt các bản sửa lỗi hiệu năng thượng nguồn để cải thiện tình hình A LOT. Xem wiki.eclipse.org/Platform_UI/Juno_Performance_Investigation để được hướng dẫn cài đặt các bản vá. - vertti
Vẫn siêu chậm đối với tôi không có plugin. Thời gian khởi động không phải là quá xấu, nhưng bất cứ lúc nào nó phải cập nhật các tài liệu tham khảo tập tin hoặc một cái gì đó, nó mất một cách vô lý dài. Đôi khi nó cũng bị trễ khi tự động hoàn thành. - sudo


Các câu trả lời:


Ba yếu tố ảnh hưởng nhất cho tốc độ Eclipse là:

  • Sử dụng phiên bản mới nhất của Eclipse (3.4 Ganimede tại thời điểm viết năm 2008)
    Lưu ý rằng David Balažic'S bình luận (Tháng 7 năm 2014) mâu thuẫn với các tiêu chí đã làm việc 6 năm trước:

Không gian làm việc "tương tự" trong Indigo (3.7.2) SR2 tải trong 4 giây, trong Kepler SR2 (4.3.2) trong 7 giây và trong Luna (4.4.0) trong 10 giây. Tất cả đều là các gói Java EE. Các phiên bản mới hơn có nhiều plugin bổ sung hơn nhưng xu hướng vẫn hiển nhiên. (bởi "cùng một" không gian làm việc tôi có nghĩa là: cùng (bổ sung được cài đặt) plugins được sử dụng, cùng một dự án kiểm tra ra từ kiểm soát phiên bản).

  • Khởi chạy nó với JDK mới nhất (1.7 tại thời điểm viết, điều này không ngăn cản bạn biên dịch trong dự án Eclipse của bạn với bất kỳ JDK nào khác mà bạn muốn: 1.4.2, 1.5, 1.6 cũ hơn ...)

    -vm jdk1.6.0_10\jre\bin\client\jvm.dll
    
  • Định cấu hình eclipse.ini (xem câu hỏi này cho một eclipse.ini hoàn chỉnh)

    -Xms128m
    -Xmx384m
    -XX:MaxPermSize=128m _# NOTE: this option is obsolete in Java 8, it will be ignored_
    -Xss2m
    [...]
    

Các Xmx đối số là số lượng bộ nhớ mà Eclipse sẽ nhận được (theo các thuật ngữ đơn giản). Với -Xmx384m, nó nhận được 384 MB RAM, với -Xmx4G nó nhận được 4 GB, v.v.


Chú thích:

  1. Đề cập đến jvm.dll có ưu điểm:

    • Màn hình Splash sắp xuất hiện.
    • Eclipse.exe trong danh sách quá trình thay vì java.exe.
    • Tường lửa: Eclipse muốn truy cập vào Internet thay vì Java.
    • Các vấn đề về xây dựng thương hiệu quản lý cửa sổ, đặc biệt là trên Windows và Mac.

    Nhưng nó cũng có thể có một số nhược điểm nếu bạn cố gắng đẩy bộ nhớ quá cao.

  2. Bộ nhớ mặc định do Eclipse thực hiện là sự kết hợp của MaxPermSize và Xmx. Đây lên đến Tổng cộng 512 MB, đủ cho máy tính bộ nhớ 1 GB.


397



Tương đương jvm.dll trên các hệ điều hành khác là gì? - Daniel Rucci
@Dan: Từ wiki.eclipse.org/…: "jvm.dll trên cửa sổ, libjvm.so trên nền tảng 'nix'. - VonC
@Dan: Đừng trộn nó với libjava.so: Trên Linux, libjava.so phụ thuộc libjvm.so, nhưng trò chuyện không đúng: $ readelf -d libjava.so  Dynamic segment at offset 0x208a8 contains 25 entries:  Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libjvm.so] [...]: Khi thư viện chứa thông tin đó, ld.so sẽ tải libjvm.so tự động khi quá trình tải libjava.so. - VonC
@Dan khi không có đối số -vm được cho, nó sẽ sử dụng jvm.dll trên các thư viện mặc định của nền tảng Windows và nền tảng (ví dụ: libjvm.so) trên các hệ điều hành khác theo mặc định; theo liên kết được đăng bởi VonC "Nhưng nó cũng có thể có một số nhược điểm nếu bạn cố gắng đẩy bộ nhớ quá cao." - Drupad Panchal
"bằng cách sử dụng phiên bản mới nhất của Eclipse" - Theo kinh nghiệm của tôi thì ngược lại. Không gian làm việc "tương tự" trong Indigo (3.7.2) SR2 tải trong 4 giây, trong Kepler SR2 (4.3.2) trong 7 giây và trong Luna (4.4.0) trong 10 giây. Tất cả đều là các gói Java EE. Không bao giờ các phiên bản có nhiều plugin bổ sung, nhưng vẫn là xu hướng rõ ràng. (bởi "cùng một" không gian làm việc tôi có nghĩa là: cùng (bổ sung cài đặt) plugins được sử dụng, cùng một dự án kiểm tra ra từ kiểm soát phiên bản) - David Balažic


Thêm vào -Xverify:none cho bạn eclipse.ini tập tin.

Nó sẽ cắt giảm đáng kể thời gian khởi động Eclipse của bạn (50% trong trường hợp của tôi nếu không nhiều hơn). Điều này sẽ yêu cầu máy ảo không xác thực tất cả các tệp .class mà nó đang tải.


244



Vâng, điều này hoạt động! RAD của tôi đang tải nhanh hơn đáng kể sau khi thêm tùy chọn này. - jobinbasani
wow - điều đó thực sự tăng tốc thời gian khởi động. - Joel
Tôi đã thêm phần này và nó đã trả lại Đã xảy ra lỗi khi khởi tạo VM Kích thước heap tối thiểu và tối đa không tương thích được chỉ định - adamwong246
Mục đích của việc xác nhận lớp học là gì? Nếu chúng ta vô hiệu hóa khi khởi động, khi nào Eclipse sẽ có cơ hội để làm điều đó? - Ken Russell
Xác nhận lớp @RajkumarMasaniayan là bước đảm bảo rằng mã sẽ được chạy không cố gắng lừa JVM. - Thorbjørn Ravn Andersen


Đi đến các cửa sổ -> Sở thích -> Xác nhận và bỏ chọn bất kỳ validators bạn không muốn hoặc cần.

Đối với Eclipse 3.7, bạn sử dụng các cửa sổ -> Sở thích -> Chung -> Khởi động và tắt máy.


116





Đảm bảo rằng bạn đang sử dụng Sun JVM để chạy Eclipse.

Trên Linux, đặc biệt là Ubuntu, Eclipse được cài đặt theo mặc định để sử dụng GCJ nguồn mở, có hiệu suất kém hơn đáng kể. Sử dụng update-alternatives --config java để chuyển sang Sun JVM để cải thiện rất nhiều UI snappiness trong Eclipse.


86



Bây giờ, bạn có thể cài đặt openjdk-7, không khác gì nhiều so với Sun Java 7. - Anony-Mousse
Không, Garbage Collection chậm hơn đáng kể trong Open so với Oracle. Điều này là do các vấn đề bằng sáng chế với các thuật toán. - Mark Lopez
@MarkLopez Bạn có thể thêm một liên kết đến một nguồn có thẩm quyền cho điều đó không? - Thorbjørn Ravn Andersen
IBM JVM sử dụng để làm tốt hơn Sun JVM trong nhiều trường hợp .... thời gian có thể đã thay đổi! - MikeW
Ngày nay (năm 2017) bạn nên chạy Eclipse với OpenJDK 8 (java -version nên nói điều gì đó như openjdk version "1.8.0_131"). Tôi thấy rằng OpenJDK 9 gây ra hiệu suất kém hơn (độ trễ cao hơn) cho nhiều tác vụ. - Mikko Rantalainen


Đóng mọi dự án đang mở mà hiện không sử dụng.

Hãy thử tắt chế độ tự động xuất bản trong khi phát triển.


48



Chỉ cần học lừa này khác. Đóng một chưa mở (tôi phải có khoảng 20-30 trong không gian làm việc của tôi) đã tạo ra một sự khác biệt đáng chú ý ngay lập tức. - tunaranch


Cảm ơn các gợi ý. Các tùy chọn này (đã đề cập ở trên) đã giúp tôi rất nhiều:

Các cửa sổ: 

Tăng bộ nhớ và liên quan đến phiên bản Java cập nhật của tôi trong eclipse.ini:

-Dosgi.requiredJavaVersion=1.6
-Xms256m
-Xmx512m
-XX:PermSize=512m
-XX:MaxPermSize=512M
-Xverify:none

Linux / Ubuntu:

Sử dụng

update-alternatives --config java

47



Tại sao bạn đặt XmX thành 512m? - Igor Ganapolsky
Chạy lệnh của bạn trong kết quả Ubuntu như sau: "Không có gì để cấu hình." - Igor Ganapolsky
@Igor, kích thước không gian heap (-XmX) phụ thuộc vào bộ nhớ của hệ thống. Khi tôi hỏi câu hỏi, 512m là giá trị tối ưu cho netbook WinXP cũ của tôi. Đọc thêm tại đây: stackoverflow.com/questions/4304312/… - Mateng
Tôi có nghĩa là chạy cập nhật lựa chọn thay thế --config java. Điều đó không liên quan đến Eclipse.ini - Igor Ganapolsky
Vâng, "Không có gì để cấu hình." có nghĩa là mọi thứ đều ổn. - Mateng


Có thể tăng hiệu suất khác bằng cách vô hiệu hóa trang trí nhãn (Windows -> Preferences; General -> Appearance -> Label Decorations) và bằng cách vô hiệu hóa các khả năng không sử dụng khi khởi động (Windows -> Preferences; General -> Startup and Shutdown).

Bạn cũng có thể nhận được hiệu suất bổ sung bằng cách chọn một chiến lược thu gom rác khác nhau tùy thuộc vào JVM của bạn.

Nếu bạn chán ngấy với các chu kỳ khởi động lại, bạn có thể sử dụng JavaRebel từ ZeroTurnaround. Điều đó sẽ rút ngắn thời gian của bạn dành cho việc khởi động lại máy chủ / máy khách.


44



Hãy thử DCE VM thay vì JavaRebel nếu bạn đang tìm kiếm giải pháp thay thế OpenSource. - - ssw.jku.at/dcevm - KrishPrabakar
Tôi thích mẹo khởi động và tắt máy. - Christophe Roussy
Câu trả lời này sẽ hữu ích hơn nếu bạn đưa ra danh sách những người trang trí hữu ích để giữ lại. Đối với tôi đó là ít nhất SVN, và một số trang trí lỗi. - SPRBRN
DCE VM "Lưu ý: Bản cập nhật Java phiên bản 1.6 mới nhất 26 không tương thích với máy ảo DCE. Tất cả các phiên bản Java 1.6 cũ hơn đều được hỗ trợ." - aliopi
Hãy cẩn thận không để bịt mắt loại bỏ trang trí (như tôi đã làm một lần và bị mất một số thông tin quan trọng như git nhãn vv xem: stackoverflow.com/questions/50861795/…) - JavaTec


Mặc dù không liên quan trực tiếp đến Eclipse:

Nếu bạn đang chạy Windows 7 (và có lẽ là Windows Vista), hãy đảm bảo vô hiệu hóa việc lập chỉ mục tệp của thư mục không gian làm việc của bạn nếu công cụ của bạn đang ở vị trí mặc định - thư mục chính của bạn. Windows theo mặc định sẽ lập chỉ mục mọi thứ trong thư mục chính của bạn và thường chỉ là một sự lãng phí cho không gian làm việc của bạn. (Nhấp chuột phải vào thư mục không gian làm việc trong trình thám hiểm, Tính chất -> Nâng cao.)


38



Kỹ thuật này có thể được mở rộng ngay cả với toàn bộ đĩa hệ thống và các ổ đĩa khác. Tốt nhất để làm điều đó sau khi cài đặt mới, bởi vì quá trình có thể mất nhiều thời gian hơn nếu bạn có nhiều tệp hơn. Nhấp chuột phải vào ổ đĩa bạn nhắm mục tiêu, ở dưới cùng của tab Chung bỏ chọn "Cho phép các tệp trên ổ đĩa này có nội dung được lập chỉ mục ngoài các thuộc tính tệp". Một quá trình đệ quy sẽ bắt đầu mà có thể mất một thời gian dài, nhưng hiệu quả cuối cùng. (Mặc dù nó rất khác, nhưng tôi sẽ so sánh kỹ thuật này với việc gắn một hệ thống tập tin với tùy chọn "noatime" và "nodiratime" trên Linux. Điều đó cũng có thể tạo ra một phép lạ.) - Csaba Toth
Tôi khuyên bạn nên để lại chỉ mục nói chung, ngoại trừ bạn thường không sử dụng chức năng tìm kiếm được nhúng trong các cửa sổ. Đối với không gian làm việc nó có thể là tốt để tắt. - Kami Kaze


Tắt máy quét vi-rút hoặc ít nhất cấu hình bất kỳ trình quét vi-rút nào để không quét các tệp JAR trên quyền truy cập đọc.


31



Đối với Symantec, điều này tạo nên sự khác biệt khá lớn. - Thorbjørn Ravn Andersen
bạn tiết kiệm trong ngày của tôi! - Jorge P.