Các cài đặt JVM tốt nhất cho Eclipse là gì? [đóng cửa]


315

Các cài đặt JVM tốt nhất bạn đã tìm thấy để chạy Eclipse là gì?


8
Các eclipse.inicài đặt mới và được cải tiến cho Helios 3.6 có ở đây (bên dưới, trong câu trả lời mới): stackoverflow.com/questions/142357/iêu
VonC

6
Thật đáng kinh ngạc khi câu hỏi được đóng lại vì không mang tính xây dựng lại được đánh giá cao như vậy ...
bancer

1
Câu hỏi này đã được hỏi khi câu trả lời gần đây nhất cho một câu hỏi như thế này trong năm 2008 là eclipsezone.com/eclipse/forums/t20732.html . Bộ câu trả lời đã phát triển vì các phiên bản mới của nhật thực và java đã được phát hành, các bản cập nhật tiếp theo đã giữ cho câu trả lời luôn mới mẻ. Đóng câu hỏi sẽ dẫn đến câu trả lời trở nên cũ kỹ. Cách duy nhất tôi có thể nghĩ ra để viết lại câu hỏi này là làm cho nó trở thành phiên bản cụ thể, điều mà tôi nghĩ là tồi tệ hơn vì nó sẽ khiến nhiều câu hỏi trả lời về cơ bản cùng một vấn đề
Craig Angus

10
Đồng ý - những câu hỏi đóng như thế này là điên rồ - điên rồ tôi nói với bạn - những câu hỏi như thế này là hữu ích và thú vị nhất trên trang web!
Luigi Plinge

3
Theo lý do đóng cửa, "Chúng tôi hy vọng câu trả lời thường liên quan đến sự kiện, tài liệu tham khảo hoặc chuyên môn cụ thể". Tôi nghĩ rằng kết thúc câu hỏi này là một sự kéo dài. Chúng ta hãy cẩn thận bằng cách sử dụng quyền hạn kiểm duyệt. Tôi muốn nói rằng trong trường hợp nghi ngờ, tốt hơn là "để kiến ​​thức được tự do" và mở.
luiscolorado

Câu trả lời:


315

Đó là thời gian của năm một lần nữa: "eclipse.ini mất 3" các thiết lập đình công trở lại!

Cài đặt Eclipse Helios 3.6 và 3.6.x

văn bản thay thế http://www.eclipse.org/home/promensions/friends-helios/helios.png

Sau khi cài đặt cho Eclipse Ganymede 3.4.xEclipse Galileo 3.5.x , đây là một cái nhìn sâu hơn về tệp cài đặt eclipse.ini "được tối ưu hóa" cho Helios Eclipse 3.6.x:

( Bằng cách "tối ưu hóa", tôi có nghĩa là có thể chạy một đầy đủ fledge Eclipse trên máy trạm crappy của chúng tôi tại nơi làm việc, một số P4 cũ từ năm 2002 với 2Go RAM và XPSP3. Nhưng tôi cũng đã thử nghiệm những thiết lập tương tự trên Windows7 )

Eclipse.ini

văn bản thay thế

CẢNH BÁO : đối với nền tảng không có cửa sổ, hãy sử dụng tùy chọn độc quyền của Sun -XX:MaxPermSizethay vì tùy chọn độc quyền của Eclipse --launcher.XXMaxPermSize.
Đó là: Trừ khi bạn đang sử dụng bản dựng 7 jdk6u21 mới nhất . Xem phần Oracle bên dưới.

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons

Lưu ý:
Điều chỉnh p2.reconciler.dropins.directorythư mục bên ngoài bạn chọn.
Xem câu trả lời SO này . Ý tưởng là có thể bỏ các plugin mới trong một thư mục độc lập với bất kỳ cài đặt Eclipse nào.

Các phần sau đây chi tiết những gì trong eclipse.initập tin này .


Oracle JVM 1.6u21 đáng sợ (bản dựng trước 7) và sự cố Eclipse

Andrew Niefer đã cảnh báo tôi về tình huống này, và đã viết một bài đăng trên blog , về một đối số vm không chuẩn ( -XX:MaxPermSize) và có thể khiến vms từ các nhà cung cấp khác không bắt đầu.
Nhưng phiên bản nhật thực của tùy chọn đó ( --launcher.XXMaxPermSize) không hoạt động với JDK mới (6u21, trừ khi bạn đang sử dụng 6u21 build 7, xem bên dưới).

Các sau cùnggiải pháp là trên Wiki Eclipse và chỉ dành cho Helios trên Windows với 6u21 pre build 7 :

  • tải xuống nhật thực cố định_1308.dll (ngày 16 tháng 7 năm 2010)
  • và đặt nó vào
(eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

Đó là nó. Không có cài đặt nào để điều chỉnh ở đây (một lần nữa, chỉ dành cho Helios trên Windows với bản dựng trước 6u21 ).
Đối với nền tảng không phải là Windows, bạn cần phải trở lại với tùy chọn độc quyền Sun -XX:MaxPermSize.

Vấn đề dựa trên một hồi quy: Nhận dạng JVM không thành công do Oracle đổi thương hiệu trong java.exe và đã kích hoạt lỗi 319514 trên Eclipse.
Andrew đã chăm sóc Bug 320005 - [launcher] --launcher.XXMaxPermSize: isSunVMsẽ trả về true cho Oracle , nhưng điều đó sẽ chỉ dành cho Helios 3.6.1.
Francis Upton , một người đi làm khác của Eclipse, phản ánh về tất cả các tình huống .

Cập nhật u21b7, ngày 7 tháng 7, 27 :
Oracle đã hồi quy thay đổi cho bản phát hành Java 6 tiếp theo và sẽ không thực hiện lại cho đến khi JDK 7 .
Nếu bạn sử dụng jdk6u21 build 7 , bạn có thể trở lại --launcher.XXMaxPermSize(tùy chọn nhật thực) thay vì -XX:MaxPermSize(tùy chọn không chuẩn).
Tự động phát hiện xảy ra trong trình khởi chạy C shimeclipse.exe vẫn sẽ tìm Sun Microsystemschuỗi "", nhưng với 6u21b7, giờ đây nó sẽ hoạt động - một lần nữa.

Hiện tại, tôi vẫn giữ -XX:MaxPermSizephiên bản (vì tôi không biết khi nào mọi người sẽ khởi chạy nhật thực đúng JDK).


Tiềm ẩn `-startup` và` --launcher.l Library`

Trái với các cài đặt trước đó, đường dẫn chính xác cho các mô-đun đó không được đặt nữa, thuận tiện vì nó có thể khác nhau giữa các bản phát hành Eclipse 3.6.x khác nhau:

  • khởi động: Nếu không được chỉ định, tệp thực thi sẽ tìm trong thư mục bổ trợ cho org.eclipse.equinox.launchergói có phiên bản cao nhất.
  • launcher.l Library: Nếu không được chỉ định, tệp thực thi sẽ tìm trong pluginsthư mục cho đoạn thích hợp org.eclipse.equinox.launcher.[platform]với phiên bản cao nhất và sử dụng thư viện dùng chung có tên eclipse_*bên trong.

Sử dụng JDK6

JDK6 hiện được yêu cầu rõ ràng để khởi chạy Eclipse:

-Dosgi.requiredJavaVersion = 1.6

Câu hỏi SO này báo cáo tỷ lệ phát triển tích cực trên Mac OS.


+ UnlockExperimentalVMOptions

Các tùy chọn sau đây là một phần của một số tùy chọn thử nghiệm của Sun JVM.

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

Chúng đã được báo cáo trong bài đăng trên blog này để có khả năng tăng tốc Eclipse.
Xem tất cả các tùy chọn JVM tại đây và trong trang tùy chọn Java Hotspot chính thức .
Lưu ý: danh sách chi tiết của các báo cáo tùy chọnUseFastAccessorMethods có thể được kích hoạt theo mặc định.

Xem thêm "Cập nhật JVM của bạn" :

Xin nhắc lại, G1 là trình thu gom rác mới để chuẩn bị cho JDK 7, nhưng đã được sử dụng trong phiên bản 6 phát hành từ u17.


Mở các tệp trong Eclipse từ dòng lệnh

Xem bài đăng trên blog từ Andrew Niefer báo cáo tùy chọn mới này:

--launcher.defaultAction
openFile

Điều này nói với launcher rằng nếu nó được gọi bằng một dòng lệnh chỉ chứa các đối số không bắt đầu bằng " -", thì các đối số đó sẽ được xử lý như thể chúng tuân theo " --launcher.openFile".

eclipse myFile.txt

Đây là loại dòng lệnh mà trình khởi chạy sẽ nhận được trên các cửa sổ khi bạn nhấp đúp vào một tệp có liên quan đến nhật thực hoặc bạn chọn các tệp và chọn " Open With" hoặc " Send To" Eclipse.

Các đường dẫn tương đối sẽ được giải quyết trước tiên đối với thư mục làm việc hiện tại và thứ hai đối với thư mục chương trình nhật thực.

Xem lỗi 301033 để tham khảo. Nguyên lỗi 4922 (tháng 10 năm 2001, sửa 9 năm sau).


p2 và Nhắc nhở hộp thoại chưa ký

Nếu bạn cảm thấy mệt mỏi với hộp thoại này trong quá trình cài đặt nhiều plugin của mình:

văn bản thay thế

, thêm vào eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

Xem bài đăng trên blog này từ Chris Aniszczybáo cáo lỗi 235526 .

Tôi muốn nói rằng nghiên cứu bảo mật hỗ trợ thực tế là ít nhắc nhở hơn là tốt hơn.
Mọi người bỏ qua những thứ bật lên trong dòng chảy của một cái gì đó họ muốn hoàn thành.

Đối với 3.6, chúng ta không nên bật lên các cảnh báo ở giữa dòng chảy - cho dù chúng ta có đơn giản hóa đến mức nào, mọi người sẽ bỏ qua chúng.
Thay vào đó, chúng ta nên thu thập tất cả những vấn đề, đừng không cài đặt những bó với vấn đề này, và thay vào đó đưa trở lại dùng đến một thời điểm nào trong công việc mà họ có thể fixup - add tin tưởng, chính sách bảo mật cấu hình lỏng lẻo hơn, vv Điều này được gọi là 'an toàn dàn dựng ' .

---------- http://www.eclipse.org/home/clists/images/wiki.gif văn bản thay thế http://www.eclipse.org/home/clists/images/wiki.gif văn bản thay thế http://www.eclipse.org/home/clists/images/wiki.gif

Tùy chọn bổ sung

Các tùy chọn này không trực tiếp ở eclipse.initrên, nhưng có thể có ích nếu cần.


Sự cố `user.home` trên Windows7

Khi nhật thực bắt đầu, nó sẽ đọc tệp kho khóa của nó (nơi lưu mật khẩu), một tệp nằm trong đó user.home.
Nếu vì một lý do nào đó mà user.homekhông tự giải quyết chính xác theo đường dẫn đầy đủ, Eclipse sẽ không bắt đầu.
Ban đầu được nêu ra trong câu hỏi SO này , nếu bạn gặp phải điều này, bạn cần xác định lại tệp kho khóa thành một đường dẫn rõ ràng (không còn user.home để giải quyết khi bắt đầu)

Thêm vào của bạn eclipse.ini:

-eclipse.keyring 
C:\eclipse\keyring.txt

Điều này đã được theo dõi bởi lỗi 300577 , nó đã được giải quyết trong câu hỏi SO khác này .


Chế độ kiểm tra sửa lỗi

Đợi đã, có nhiều hơn một tệp cài đặt trong Eclipse.
nếu bạn thêm vào eclipse.initùy chọn của mình:

-debug

, bạn kích hoạt chế độ gỡ lỗi và Eclipse sẽ tìm một tệp cài đặt khác : một .optionstệp nơi bạn có thể chỉ định một số tùy chọn OSGI.
Và thật tuyệt vời khi bạn thêm các plugin mới thông qua thư mục dropins.
Thêm vào tệp .options của bạn các cài đặt sau, như được mô tả trong bài đăng trên blog này " Chẩn đoán Dropins " :

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2 sẽ thông báo cho bạn các gói được tìm thấy trong dropins/thư mục, yêu cầu nào được tạo và kế hoạch cài đặt là gì. Có thể đó không phải là lời giải thích chi tiết về những gì thực sự đã xảy ra và những gì đã sai, nhưng nó sẽ cung cấp cho bạn thông tin mạnh mẽ về nơi bắt đầu:

  • gói của bạn trong kế hoạch?
  • Có phải đó là sự cố cài đặt (lỗi P2)
  • hoặc có thể chỉ là không tối ưu để bao gồm tính năng của bạn?

Điều đó xuất phát từ Bug 264924 - [hòa giải] Không có chẩn đoán về các vấn đề dropins , cuối cùng giải quyết vấn đề sau như:

Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5

Đây là một cấu hình có vấn đề vì OCL phụ thuộc vào EMF bị thiếu.
3.5M5 không cung cấp chẩn đoán về vấn đề này.

Bắt đầu nhật thực.
Không có vấn đề rõ ràng. Không có gì trong Nhật ký lỗi.

  • Help / About / Pluginchi tiết cho thấy org.eclipse.ocl.doc, nhưng không org.eclipse.ocl.
  • Help / About / Configurationchi tiết không có (chẩn đoán) đề cập đến org.eclipse.ocl.
  • Help / Installation / Information Installed Softwarekhông có đề cập đến org.eclipse.ocl.

Đâu là những dấu hiệu lỗi tốt đẹp?


Manifest Classpath

Xem bài đăng trên blog này :

  • Trong Galileo (còn gọi là Eclipse 3.5), JDT đã bắt đầu giải quyết đường dẫn lớp biểu hiện trong các thư viện được thêm vào đường dẫn xây dựng của dự án. Điều này hoạt động cho dù thư viện đã được thêm vào đường dẫn xây dựng của dự án trực tiếp hoặc thông qua bộ chứa đường dẫn lớp, chẳng hạn như cơ sở thư viện người dùng do JDT cung cấp hoặc do bên thứ ba triển khai.
  • Trong Helios, hành vi này đã được thay đổi để loại trừ các thùng chứa classpath khỏi độ phân giải classpath rõ ràng.

Điều đó có nghĩa là một số dự án của bạn có thể không còn được biên dịch trong Helios.
Nếu bạn muốn trở lại hành vi Galileo, hãy thêm:

-DresolveReferencedLibrariesForContainers=true

Xem lỗi 305037 , lỗi 313965lỗi 313890 để tham khảo.


Ngăn xếp IPV4

Câu hỏi SO này đề cập đến một sửa chữa tiềm năng khi không truy cập vào các trang web cập nhật plugin:

-Djava.net.preferIPv4Stack=true

Đề cập ở đây chỉ trong trường hợp nó có thể giúp trong cấu hình của bạn.


Tối ưu hóa tiềm năng JVM1.7x64

Bài viết này báo cáo:

Đối với bản ghi, các tùy chọn nhanh nhất mà tôi đã tìm thấy cho đến nay cho bài kiểm tra băng ghế dự bị của tôi với JVM 1.7 x64 là:

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

Nhưng tôi vẫn đang làm việc với nó ...


Theo liên kết này, oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms , bạn cần phải có -XX: + UseConcMarkSweepGC để sử dụng -XX: + CMSIncrementalMode. Đó là thiếu từ ví dụ của bạn ở trên. Chúng tôi sẽ không cần CMSIncrementalMode trong trường hợp chúng tôi sử dụng G1 GC, phải không?
RuntimeException

1
Này, G1GC là một thảm họa trên máy mac. Nó ăn toàn bộ máy, yêu cầu khởi động lại.
bmargulies

4
@VonC: -XX:CompileThreshold=5gây ra sự chậm chạp HORRENDOUS cho tôi. Loại bỏ tùy chọn này một mình đã cắt giảm thời gian khởi động Eclipse của tôi xuống còn 17 giây từ> 1 phút !! Không đề cập đến việc IDE chậm nói chung khủng khiếp như thế nào. Xem liên kết này
TrinitronX

3
@TrinitronX: (và thực tế là tất cả mọi người), -XX:CompileThreshold=5là một giá trị rất thấp (mặc định = 10000). Giá trị này đại diện cho số lần gọi / nhánh của phương thức trước khi biên dịch nó. Giá trị quá thấp sẽ khiến CodeCache của bạn bị đầy sớm và Bảng điều khiển có thể báo cáo: CodeCache is full. Compiler has been disabled Khi Trình biên dịch bị vô hiệu hóa, bạn sẽ thấy sự chậm chạp trong ứng dụng. Có hai cách để khắc phục điều này, 1. Sử dụng -XX:CompileThreshold=1000(tinh chỉnh số này) hoặc 2. Thử tăng kích thước bộ đệm mã bằng cách sử dụng -XX:ReservedCodeCacheSize=64m(gấp đôi từ 32m mặc định)
Drupad Panchal

4
đối với linux, hãy sử dụng /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so cho vị trí
jvm

76

Cài đặt Eclipse Galileo 3.5 và 3.5.1

Hiện tại (tháng 11 năm 2009), tôi đang thử nghiệm với bản cập nhật jdk6 17 bộ tùy chọn cấu hình sau (với Galileo - nhật thực 3.5.x, xem bên dưới cho 3,4 hoặc cao hơn cho Helios 3.6.x ):
(tất nhiên, điều chỉnh các đường dẫn tương đối trình bày trong eclipse.ini này với các đường dẫn chính xác cho thiết lập của bạn)

Lưu ý: đối với nhật thực 3.5 , thay thế startuplauncher.libraryđường bằng:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519

nhật thực 3.5.1

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins

Xem thêm câu trả lời ban đầu của tôi ở trên để biết thêm thông tin.

Thay đổi (từ tháng 7 năm 2009)

  • đề cập đến launcher chứ không phải framework
  • plugin chia sẻ: org.eclipse.equinox.p2.reconciler.dropins.directorytùy chọn.
  • Galileo hỗ trợ các đường dẫn tương đối đầy đủ cho không gian làm việc hoặc VM (tránh phải sửa đổi các đường dẫn từ cài đặt nhật thực này sang cài đặt nhật thực khác, nếu, tất nhiên, JVM và không gian làm việc của bạn giữ nguyên)
    Trước đó, các đường dẫn tương đối đó tiếp tục được viết lại thành tuyệt đối khi nhật thực tự khởi chạy ...
  • Bạn cũng có thể sao chép thư mục JRE của bản cài đặt Java JDK bên trong thư mục nhật thực của bạn

Hãy cẩn thận

Có một lỗi với các điểm dừng bị bỏ qua thực sự liên quan đến JDK.
Đừng sử dụng JDK6u16 hoặc gần đây hơn để khởi chạy nhật thực (Sau đó, bạn có thể định nghĩa bao nhiêu JDK bạn muốn biên dịch trong nhật thực: không phải vì bạn khởi chạy nhật thực với JDK6 mà bạn sẽ phải biên dịch với cùng JDK đó).

Tối đa

Lưu ý việc sử dụng:

--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m

Như tài liệu trong Wiki Wiki ,

Eclipse 3.3 hỗ trợ một đối số mới cho trình khởi chạy : --launcher.XXMaxPermSize.
Nếu VM đang được sử dụng là Sun VM và chưa có -XX:MaxPermSize=đối số VM, thì trình khởi chạy sẽ tự động thêm-XX:MaxPermSize=256m vào danh sách các đối số VM đang được sử dụng.
Trình khởi chạy 3.3 chỉ có khả năng xác định Sun VM trên Windows.

Như chi tiết trong mục này :

Không phải tất cả các vms chấp nhận -XX:MaxPermSizeđối số đó là lý do tại sao nó được thông qua theo cách này. Có thể (hoặc có thể không) tồn tại các vấn đề với việc xác định vms mặt trời.
Lưu ý: Eclipse 3.3.1 có một lỗi trong đó trình khởi chạy không thể phát hiện Sun VM và do đó không sử dụng đúng kích thước PermGen. Có vẻ như đây cũng là một lỗi đã biết trên Mac OS X cho 3.3.0 .
Nếu bạn đang sử dụng một trong hai kết hợp nền tảng này, hãy thêm-XX cờ vào eclipse.ininhư mô tả ở trên.

Ghi chú:

  • dòng " 384m" dịch thành "=384m " của đối số VM, nếu VM phân biệt chữ hoa chữ thường trên " m", thì đối số này cũng vậy.
  • các " --launcher." tiền tố, quy định cụ thể này mà đối số được tiêu thụ bởi các phóng bản thân và được bổ sung vào lý lẽ cụ thể phóng tới xung đột tên tránh với đối số ứng dụng. (Ví dụ khác là --launcher.library, --launcher.suppressErrors)

Phần -vmargs -XX:MaxPermSize=384mlà đối số được truyền trực tiếp đến VM, bỏ qua toàn bộ trình khởi chạy và không có kiểm tra nào về nhà cung cấp VM được sử dụng.


Tôi đã gặp một số vấn đề với điều này đối với bản phát hành nhật thực 3.5x64 mới nhất: --launcher.l thư viện plugin / org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519 -startup plugin / org.eclipse.equinox.la .0.200.v20090520.jar tôi cũng phải sử dụng jdk JAVA_HOME / bin / javaw, cho plugin m2eclipse. Nếu không thì điều này thật tuyệt vời.
Nathan Feger

Không phải hai người này đang làm điều tương tự sao? "--launcher.XXMaxPermSize 384m" và "-XX: MaxPermSize = 128m"
Igor Zinov'yev

@Igor Zinov'yev: nó hơi dư thừa, nhưng cả hai đều có thể hữu ích, tùy thuộc vào nền tảng và phiên bản nhật thực. Tôi đặt lại chúng về cùng một giá trị và hoàn thành câu trả lời của mình với một chút tài liệu liên quan đến các cài đặt đó.
VonC


Nếu bạn luôn muốn sử dụng VM mới nhất và lớn nhất thì tại sao không phải là đối số "-Dosgi.requiredJavaVersion = 1.5" bằng 1.6?
Tony R

63

Cài đặt Eclipse Ganymede 3.4.2


Để biết thêm các cài đặt gần đây, hãy xem các cài đặt Eclipse Galileo 3.5 ở trên .


JDK

Theo tôi, cài đặt JVM tốt nhất luôn bao gồm JDK mới nhất mà bạn có thể tìm thấy (vì vậy hiện tại, jdk1.6.0_b07 lên đến b16, ngoại trừ b14 và b15 )

nhật thực

Ngay cả với các cài đặt bộ nhớ khá thấp đó, tôi có thể chạy các dự án java lớn (cùng với máy chủ web) trên máy tính để bàn cũ (2002) với RAM 2Go.

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote

Xem câu trả lời SO của GKellymục nhập blog của Piotr Gabryanchot để biết thêm chi tiết về các tùy chọn mới.

Giám sát

Bạn cũng có thể xem xét khởi chạy:

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

Như đã nói trong một câu hỏi trước về tiêu thụ bộ nhớ .


1
-Xssv2m dùng để làm gì, khi tôi đưa nó vào cài đặt vm nhật thực sẽ không khởi chạy, đã xem các tài liệu cho các cài đặt JVM nhưng không thể tìm thấy nó
Craig Angus

Phải ... đó là một lỗi đánh máy: Xss2m, không phải Xssv2m: -Xss xác định kích thước của ngăn xếp: -Xss1024k. Nếu không gian ngăn xếp quá nhỏ, cuối cùng bạn sẽ thấy một lớp ngoại lệ java.lang.StackOverflowError (một thông báo lỗi huyền thoại ở đây ;-))
VonC

Cuối cùng cũng có vòng để sử dụng bộ cài đặt thứ hai và ngạc nhiên về hiệu quả của chúng!
Craig Angus

Đã có cơ hội sử dụng các thiết lập trong một thời gian, nhật thực có vẻ không ổn, nhưng việc xây dựng kiến ​​có vẻ chậm hơn ???
Craig Angus

@Craig Angus: lạ, bạn đang sử dụng phiên bản nhật thực nào? Và phiên bản kiến ​​nào được bao gồm trong đó?
VonC

20

Cài đặt Indigo 3.7.2 của Eclipse (linux 64 bit)

Cài đặt cho phiên bản Sun / Oracle java "1.6.0_31" và Eclipse 3.7 chạy trên x86-64 Linux:

-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms64m
-Xmx200m
-XX:NewSize=8m
-XX:PermSize=80m
-XX:MaxPermSize=150m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

Lưu ý rằng điều này chỉ sử dụng 200 MB cho heap và 150 MB cho heap. Nếu bạn đang sử dụng các plugin lớn, bạn có thể muốn tăng cả giới hạn "-Xmx200m" và "-XX: MaxPermSize = 150m".

Mục tiêu tối ưu hóa chính cho các cờ này là để giảm thiểu độ trễ trong mọi trường hợp và vì mục tiêu tối ưu hóa thứ cấp giảm thiểu việc sử dụng bộ nhớ.


Hoạt động tuyệt vời đối với tôi (mặc dù tôi đã nhân đôi giá trị cho các cài đặt liên quan đến bộ nhớ, nhưng nó vẫn thấp và phồng rộp nhanh!)
Aktau

Bạn có cả -XX: + UseConcMarkSweepGC và -XX: + UseParNewGC. Tại sao? Tôi không nghĩ bạn có thể sử dụng cả hai công cụ thu gom rác và tôi không chắc cái nào cuối cùng cũng được sử dụng.
herman

Tôi nghĩ rằng -XX: + UseConcMarkSweepGC dành cho bộ sưu tập rác thế hệ cũ và -XX: + UseParNewGC được sử dụng để thu gom rác eden.
Mikko Rantalainen


3
Mỗi tùy chọn và mỗi đối số cho một tùy chọn phải nằm trên một dòng riêng.
Josh Clemm

14

-Hiển thị vị trí

Để làm cho nhật thực chạy hai lần dễ dàng hơn và biết bạn đang xử lý không gian làm việc nào

Eclipse 3.6 thêm một tùy chọn tùy chọn để chỉ định những gì sẽ hiển thị cho Workspace name (shown in window title)cái hoạt động tốt hơn nhiều so -showlocationvới ba lý do:

  1. Bạn không cần phải khởi động lại nhật thực để nó ảnh hưởng.
  2. Bạn có thể chọn một mã ngắn.
  3. Nó xuất hiện đầu tiên, trước khi phối cảnh và tên ứng dụng.

9

Nếu bạn đang đi với bản cập nhật jdk6 14, tôi khuyên bạn nên sử dụng trình thu gom rác G1 có vẻ giúp hiệu suất.

Để làm như vậy, xóa các cài đặt này:

-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPaces

và thay thế chúng bằng những thứ này:

-XX: + UnlockExperimentalVMOptions
-XX: + Sử dụngG1GC


9

Nếu bạn đang sử dụng Linux + Sun JDK / JRE 32bits , thay đổi "-vm" để:

-vm 
[your_jdk_folder]/jre/lib/i386/client/libjvm.so

Nếu bạn đang sử dụng Linux + Sun JDK / JRE 64bits , thay đổi "-vm" để:

-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so

Điều đó hoạt động tốt với tôi trên Ubuntu 8.10 và 9.04


Đây có phải là có Eclipse sử dụng JDK làm môi trường mặc định không?
Thorbjørn Ravn Andersen

Điều này có thể được sử dụng để có Eclipse sử dụng một JDK cụ thể / khác nhau làm môi trường mặc định.
Gilberto Olimpio

7

Bạn cũng có thể thử chạy với JRockit . Đó là một JVM được tối ưu hóa cho các máy chủ, nhưng nhiều ứng dụng khách chạy lâu, như IDE, chạy rất tốt trên JRockit. Nhật thực cũng không ngoại lệ. JRockit không có không gian cho phép nên bạn không cần định cấu hình nó.

Có thể đặt mục tiêu thời gian tạm dừng (ms) để tránh tạm dừng gc dài làm trì hoãn giao diện người dùng.

-showsplash
org.eclipse.platform
-vm
 C:\jrmc-3.1.2-1.6.0\bin\javaw.exe 
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20

Tôi thường không bận tâm đến việc thiết lập -Xmx và -Xms và để cho JRockit tăng số lượng khi nó thấy cần thiết. Nếu bạn khởi chạy ứng dụng Eclipse của mình với JRockit, bạn cũng có thể theo dõi, lập hồ sơ và tìm rò rỉ bộ nhớ trong ứng dụng của mình bằng bộ công cụ Kiểm soát nhiệm vụ của JRockit. Bạn tải xuống các plugin từ trang web cập nhật này . Lưu ý, chỉ hoạt động cho Eclipse 3.3 và Eclipse 3.4


Tôi đã chạy nhật thực trên JRockit trong quá khứ và chạy rất tốt
Craig Angus

5

Đây là cài đặt của riêng tôi cho Eclipse của tôi chạy trên máy tính xách tay RAM i7 2630M 16GB, cài đặt này đã được sử dụng trong một tuần, không gặp sự cố và Eclipse 3.7 đang chạy trơn tru.

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms1024m
-Xmx4096m 
-XX:MaxPermSize=256m

Tính toán: Đối với Win 7 x64

  • Xms = Bộ nhớ vật lý / 16
  • Xmx = Bộ nhớ vật lý / 4
  • MaxPermSize = Tương tự như giá trị mặc định, là 256m

Máy tính xách tay Wow 16G? Tôi tò mò. Đó có phải là System76 không? : D
Phil

5
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dcom.sun.management.jmxremote
-Declipse.p2.unsignedPolicy=allow

Và những thiết lập này đã làm việc như một cơ duyên đối với tôi. Tôi đang chạy OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24


Cảm ơn, điều này đã giúp hiệu suất của tôi khá nhiều (thiết lập tương tự). Nhưng tôi đã tăng kích thước heap tối đa lên 1024MB.
Jeff Evans

4

Cài đặt của riêng tôi (Java 1.7, sửa đổi cho 1.6):

-vm
C:/Program Files (x86)/Java/jdk1.7.0/bin
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20100628
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-server
-Dosgi.requiredJavaVersion=1.7
-Xmn100m
-Xss1m
-XgcPrio:deterministic
-XpauseTarget:20
-XX:PermSize=400M
-XX:MaxPermSize=500M
-XX:CompileThreshold=10
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-XX:+AggressiveOpts
-Xms512m
-Xmx512m

3

Eclipse thích rất nhiều RAM. Sử dụng ít nhất -Xmx512M. Nhiều hơn nếu có sẵn.



2

XX: + UseParallelGC là lựa chọn tuyệt vời nhất từng có !!!


1

-vm
C: \ Tệp chương trình \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll

Để chỉ định phiên bản java nào bạn đang sử dụng và sử dụng dll thay vì khởi chạy quy trình javaw


0

Đây là những gì tôi sử dụng (mặc dù tôi có chúng trong lối tắt thay vì tệp cài đặt):

eclipse.exe -showlocation -vm "C: \ Java \ jdk1.6.0_07 \ bin \ javaw.exe" -vmargs -Xms256M -Xmx768M -XX: + UseParallelGC -XX: MaxPermSize = 128M

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.