การตั้งค่า JVM ที่ดีที่สุดที่คุณพบเมื่อใช้ Eclipse คืออะไร
การตั้งค่า JVM ที่ดีที่สุดที่คุณพบเมื่อใช้ Eclipse คืออะไร
คำตอบ:
มันเป็นช่วงเวลาของปีอีกครั้ง: "eclipse.ini ใช้เวลา 3" การตั้งค่ากลับมาแล้ว!
alt text http://www.eclipse.org/home/promotions/friends-helios/helios.png
หลังจากการตั้งค่าสำหรับEclipse Ganymede 3.4.xและEclipse Galileo 3.5.xนี่คือการดูในเชิงลึกที่ไฟล์" eclipse.ini " การตั้งค่าที่ดีที่สุดสำหรับ Eclipse Helios 3.6.x:
( โดย "ปรับให้เหมาะสม" ฉันหมายถึงสามารถเรียกใช้ Eclipse แบบเต็มรูปแบบบนเวิร์คสเตชั่นเร็ว ๆ นี้ที่ทำงาน P4 เก่าบางรุ่นจากปี 2002 ด้วย 2Go RAM และ XPSp3 แต่ฉันได้ทดสอบการตั้งค่าเดียวกันเหล่านี้บน Windows7 แล้ว )
คำเตือน : สำหรับ Windows ที่ไม่ใช่แพลตฟอร์มใช้ดวงอาทิตย์ตัวเลือกที่เป็นกรรมสิทธิ์แทนของคราสตัวเลือกที่เป็นกรรมสิทธิ์-XX:MaxPermSize
นั่นคือ: ยกเว้นว่าคุณกำลังใช้jdk6u21 build 7ล่าสุด ดูส่วน Oracle ด้านล่าง--launcher.XXMaxPermSize
-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
หมายเหตุ:
ปรับตัวp2.reconciler.dropins.directory
เข้ากับไดเรกทอรีภายนอกที่คุณเลือก
ดูคำตอบ SOนี้ แนวคิดคือสามารถวางปลั๊กอินใหม่ในไดเร็กทอรีได้อย่างอิสระจากการติดตั้ง Eclipse
ส่วนต่อไปนี้แสดงรายละเอียดสิ่งที่อยู่ในeclipse.ini
ไฟล์นี้
Andrew Nieferเตือนฉันถึงสถานการณ์นี้และเขียนโพสต์บล็อกเกี่ยวกับอาร์กิวเมนต์ vm ที่ไม่ได้มาตรฐาน ( -XX:MaxPermSize
) และอาจทำให้ vms จากผู้ขายรายอื่นไม่สามารถเริ่มต้นได้เลย
แต่เวอร์ชัน eclipse ของตัวเลือกนั้น ( --launcher.XXMaxPermSize
) ไม่ทำงานกับ JDK ใหม่ (6u21 ยกเว้นคุณใช้ 6u21 build 7 ดูด้านล่าง)
สุดท้ายโซลูชันอยู่ในEclipse Wikiและสำหรับ Helios บน Windows ด้วย 6u21 pre build 7เท่านั้น:
(eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
แค่นั้นแหละ. ไม่มีการตั้งค่าที่จะปรับแต่งที่นี่ (อีกครั้งเฉพาะสำหรับ Helios บน Windowsด้วย6u21 pre build 7 )
สำหรับแพลตฟอร์มที่ไม่ใช่ Windows -XX:MaxPermSize
คุณจะต้องย้อนกลับไปยังดวงอาทิตย์ตัวเลือกที่เป็นกรรมสิทธิ์
ปัญหานี้เกิดจากการถดถอย: การระบุ JVM ล้มเหลวเนื่องจาก Oracle rebranding ใน java.exeและข้อผิดพลาดทริกเกอร์319514บน Eclipse
แอนดรูว์ดูแลBug 320005 - [ตัวเรียกใช้] --launcher.XXMaxPermSize: isSunVM
ควรกลับมาจริงสำหรับ Oracleแต่นั่นจะเป็นเพียง Helios 3.6.1 เท่านั้น
ฟรานซิสอัพตันอีกคราส committer, สะท้อนให้เห็นถึงสถานการณ์ทั้งหมด
ปรับปรุง u21b7, กรกฎาคม, 27 :
ออราเคิลได้ถดถอยเปลี่ยนแปลงสำหรับ Java 6 รุ่นถัดไปและจะไม่ใช้มันอีกครั้งจนกว่า JDK 7
หากคุณใช้jdk6u21 บิลด์ 7คุณสามารถเปลี่ยนกลับเป็น--launcher.XXMaxPermSize
(ตัวเลือก eclipse) แทน-XX:MaxPermSize
(ตัวเลือกที่ไม่ได้มาตรฐาน)
การตรวจจับอัตโนมัติที่เกิดขึ้นในตัวเรียกใช้งาน C shimeclipse.exe
จะยังคงมองหาSun Microsystems
สตริง "" แต่ด้วย 6u21b7 ตอนนี้มันจะใช้ได้ - อีกครั้ง
สำหรับตอนนี้ฉันยังคงรักษา-XX:MaxPermSize
เวอร์ชันไว้ (เพราะฉันไม่รู้ว่าเมื่อไหร่ที่ทุกคนจะเริ่มใช้JDK ที่ถูกต้อง )
ตรงกันข้ามกับการตั้งค่าก่อนหน้านี้พา ธ ที่แน่นอนสำหรับโมดูลเหล่านั้นไม่ได้ตั้งค่าอีกต่อไปซึ่งสะดวกเนื่องจากสามารถแตกต่างกันระหว่าง Eclipse 3.6.x รุ่นต่างๆ:
org.eclipse.equinox.launcher
บันเดิลที่มีเวอร์ชันสูงสุดplugins
ไดเร็กทอรีสำหรับorg.eclipse.equinox.launcher.[platform]
แฟรกเมนต์ที่เหมาะสมกับเวอร์ชันสูงสุดและใช้ไลบรารีแบบแบ่งใช้ที่มีชื่อeclipse_*
อยู่ภายในตอนนี้ JDK6 ต้องการการเปิดใช้ Eclipse อย่างชัดเจน:
-Dosgi.requiredJavaVersion = 1.6
คำถาม SOนี้รายงานอุบัติการณ์เชิงบวกสำหรับการพัฒนาบน Mac OS
ตัวเลือกต่อไปนี้เป็นส่วนหนึ่งของตัวเลือกการทดลองบางอย่างของ Sun JVM
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
มีการรายงานในบล็อกโพสต์นี้เพื่อเร่งความเร็ว Eclipse
ดูทุกตัวเลือก JVM ที่นี่และยังอยู่ในอย่างเป็นทางการJava Hotspot ตัวเลือกหน้า
หมายเหตุ: รายการโดยละเอียดของตัวเลือกเหล่านั้นรายงานที่UseFastAccessorMethods
อาจใช้งานโดยค่าเริ่มต้น
ดูเพิ่มเติมที่"อัพเดต JVM ของคุณ" :
เพื่อเป็นตัวเตือน G1 เป็นตัวรวบรวมขยะใหม่ในการเตรียมการสำหรับ JDK 7 แต่ได้ใช้ในรีลีสเวอร์ชัน 6 จาก u17 แล้ว
ดูโพสต์บล็อกจาก Andrew Niefer รายงานตัวเลือกใหม่นี้:
--launcher.defaultAction
openFile
สิ่งนี้จะบอกตัวเรียกใช้งานว่าหากถูกเรียกด้วยบรรทัดคำสั่งที่มีเพียงอาร์กิวเมนต์ที่ไม่ได้ขึ้นต้นด้วย "
-
" ดังนั้นอาร์กิวเมนต์เหล่านั้นควรได้รับการปฏิบัติเสมือนว่าพวกเขาทำตาม "--launcher.openFile
"
eclipse myFile.txt
นี่คือประเภทบรรทัดคำสั่งที่ตัวเรียกใช้งานจะได้รับบน windows เมื่อคุณดับเบิลคลิกไฟล์ที่เกี่ยวข้องกับ eclipse หรือคุณเลือกไฟล์และเลือก "
Open With
" หรือ "Send To
" Eclipseเส้นทางสัมพัทธ์จะได้รับการแก้ไขก่อนกับไดเรกทอรีการทำงานปัจจุบันและที่สองกับไดเรกทอรีโปรแกรม eclipse
ดูข้อผิดพลาด 301033สำหรับการอ้างอิง ข้อผิดพลาดเริ่มแรกที่4922 (ตุลาคม 2544, แก้ไข 9 ปีต่อมา)
หากคุณเบื่อกับกล่องโต้ตอบนี้ระหว่างการติดตั้งปลั๊กอินหลายตัว:
เพิ่มในของคุณeclipse.ini
:
-Declipse.p2.unsignedPolicy=allow
เห็นนี้โพสต์บล็อกจากคริส Aniszczyและรายงานข้อผิดพลาด 235526
ฉันต้องการจะบอกว่าการวิจัยด้านความปลอดภัยสนับสนุนความจริงที่ว่าพรอมต์ที่น้อยกว่านั้นดีกว่า
ผู้คนไม่สนใจสิ่งต่าง ๆ ที่ปรากฏขึ้นในสิ่งที่ต้องการทำสำหรับ 3.6 เราไม่ควรแสดงคำเตือนในระหว่างการไหล - ไม่ว่าเราจะลดความซับซ้อนลงเพียงใดก็ตามผู้คนจะไม่สนใจพวกเขา
แต่เราควรเก็บปัญหาทั้งหมดที่ไม่ได้ติดตั้งการรวมกลุ่มผู้ที่มีปัญหาและแทนที่จะนำกลับมาใช้จุดในเวิร์กโฟลว์ที่พวกเขาสามารถ fixup - เพิ่มความไว้วางใจนโยบายการรักษาความปลอดภัยการกำหนดค่าขึ้นอย่างอิสระ ฯลฯ นี้เรียกว่า'ปลอดภัย การแสดงละคร'
---------- http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif
ตัวเลือกเหล่านั้นไม่ได้อยู่ในeclipse.ini
ข้างต้นโดยตรงแต่อาจมีประโยชน์ถ้าจำเป็น
เมื่อคราสเริ่มต้นมันจะอ่านไฟล์ที่เก็บคีย์ (ที่รหัสผ่านจะถูกเก็บไว้) user.home
ไฟล์ที่อยู่ใน
หากด้วยเหตุผลบางอย่างที่user.home
ไม่สามารถแก้ไขตัวเองอย่างถูกต้องกับเส้นทางแบบเต็ม Eclipse จะไม่เริ่มทำงาน
เริ่มแรกแล้วในคำถาม SO นี้หากคุณพบสิ่งนี้คุณต้องกำหนดไฟล์ที่เก็บคีย์ใหม่ให้เป็นพา ธ ที่ชัดเจน (ไม่มีผู้ใช้อีกต่อไปที่จะแก้ไขเมื่อเริ่มต้น)
เพิ่มในของคุณeclipse.ini
:
-eclipse.keyring
C:\eclipse\keyring.txt
นี้ได้รับการติดตามโดยข้อผิดพลาด 300577มันได้รับการแก้ไขในคำถาม SO อื่น ๆนี้
รอมีไฟล์การตั้งค่ามากกว่าหนึ่งไฟล์ใน Eclipse
ถ้าคุณเพิ่มeclipse.ini
ในตัวเลือกของคุณ:
-debug
คุณเปิดใช้งานโหมดแก้ไขข้อบกพร่องและ Eclipse จะค้นหาไฟล์การตั้งค่าอื่น : .options
ไฟล์ที่คุณสามารถระบุตัวเลือก OSGI บางตัวได้
และเป็นสิ่งที่ยอดเยี่ยมเมื่อคุณเพิ่มปลั๊กอินใหม่ผ่านโฟลเดอร์ดรอป
เพิ่มไฟล์. options ของคุณในการตั้งค่าต่อไปนี้ตามที่อธิบายไว้ในโพสต์บล็อกนี้" การวินิจฉัย Dropins " :
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
P2 จะแจ้งให้คุณทราบว่าบันเดิลใดที่พบใน
dropins/
โฟลเดอร์คำขอใดที่ถูกสร้างขึ้นและแผนการในการติดตั้งคืออะไร อาจไม่ใช่คำอธิบายโดยละเอียดเกี่ยวกับสิ่งที่เกิดขึ้นจริงและสิ่งที่ผิดพลาด แต่ควรให้ข้อมูลที่ชัดเจนเกี่ยวกับสถานที่เริ่มต้น:
- เป็นชุดของคุณในแผนหรือไม่
- มันเป็นปัญหาการติดตั้ง (ความผิด P2)
- หรืออาจจะเป็นการดีที่สุดที่จะรวมคุณสมบัติของคุณ
ที่มาจากBug 264924 - [reconciler] ไม่มีการวินิจฉัยปัญหา Dropinsซึ่งในที่สุดก็แก้ปัญหาดังต่อไปนี้:
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
นี่คือการกำหนดค่าที่มีปัญหาเนื่องจาก OCL ขึ้นอยู่กับ EMF ที่ขาดหายไป
3.5M5 ไม่มีการวินิจฉัยปัญหานี้เริ่มคราส
ไม่มีปัญหาชัดเจน ไม่มีสิ่งใดในบันทึกข้อผิดพลาด
Help / About / Plugin
รายละเอียดการแสดงแต่ไม่org.eclipse.ocl.doc
org.eclipse.ocl
Help / About / Configuration
รายละเอียดยังไม่มี (วินิจฉัย)org.eclipse.ocl
เอ่ยถึงHelp / Installation / Information Installed Software
org.eclipse.ocl
มีการกล่าวถึงไม่มีเครื่องหมายข้อผิดพลาดที่ดีอยู่ที่ไหน
ดูโพสต์บล็อกนี้:
- ใน Galileo (aka Eclipse 3.5) JDT เริ่มแก้ไข classpath ชัดแจ้งในไลบรารีที่เพิ่มเข้ากับเส้นทางการสร้างของโครงการ สิ่งนี้ทำงานได้ไม่ว่าจะเป็นการเพิ่มไลบรารีในเส้นทางการสร้างของโครงการโดยตรงหรือผ่านคอนเทนเนอร์ classpath เช่นสิ่งอำนวยความสะดวกไลบรารีผู้ใช้ที่จัดทำโดย JDT หรือสิ่งที่ดำเนินการโดยบุคคลที่สาม
- ใน Helios พฤติกรรมนี้ถูกเปลี่ยนเพื่อไม่รวมคอนเทนเนอร์คลาสพา ธ จากการแก้ปัญหาคลาสพา ธ ที่ชัดแจ้ง
นั่นหมายความว่าบางโครงการของคุณอาจไม่ได้รวบรวมใน Helios อีกต่อไป
หากคุณต้องการเปลี่ยนกลับเป็นพฤติกรรมกาลิเลโอให้เพิ่ม:
-DresolveReferencedLibrariesForContainers=true
ดูข้อผิดพลาด 305037 , ข้อผิดพลาด 313965และข้อผิดพลาด 313890สำหรับการอ้างอิง
คำถาม SOนี้กล่าวถึงการแก้ไขที่อาจเกิดขึ้นเมื่อไม่สามารถเข้าถึงไซต์อัปเดตปลั๊กอิน:
-Djava.net.preferIPv4Stack=true
พูดถึงที่นี่ในกรณีที่มันสามารถช่วยในการกำหนดค่าของคุณ
รายงานบทความนี้ :
สำหรับเร็กคอร์ดตัวเลือกที่เร็วที่สุดที่ฉันได้พบในการทดสอบ bench ของฉันด้วย 1.7 x64 JVM n Windows คือ:
-Xincgc
-XX:-DontCompileHugeMethods
-XX:MaxInlineSize=1024
-XX:FreqInlineSize=1024
แต่ฉันยังคงทำงานกับมัน ...
-XX:CompileThreshold=5
ทำให้เกิดการลดลงอย่างมากสำหรับฉัน การกำจัดตัวเลือกนี้เพียงอย่างเดียวลดเวลาเริ่มต้น Eclipse ลงเหลือ 17 วินาทีจาก> 1 นาที !! ไม่ต้องพูดถึงว่า IDE นั้นช้ามากเพียงใด ดูลิงค์นี้
-XX:CompileThreshold=5
เป็นค่าที่ต่ำมาก (ค่าเริ่มต้น = 10,000) ค่านี้แสดงถึงจำนวนการเรียกใช้เมธอด / สาขาก่อนรวบรวม ค่าต่ำเกินไปจะทำให้ CodeCache ของคุณเต็มก่อนกำหนดและคอนโซลอาจรายงาน: CodeCache is full. Compiler has been disabled
เมื่อคอมไพเลอร์ถูกปิดใช้งานคุณจะสังเกตเห็นความช้าในแอป มีสองวิธีในการแก้ไขปัญหานี้คือ 1. ใช้-XX:CompileThreshold=1000
(ปรับตัวเลขนี้อย่างละเอียด) หรือ 2. ลองเพิ่มขนาดแคชโค้ดโดยใช้-XX:ReservedCodeCacheSize=64m
(สองเท่าจากค่าเริ่มต้น 32m)
ปัจจุบัน (พฤศจิกายน 2009) ฉันกำลังทดสอบด้วย jdk6 อัปเดต 17 ชุดตัวเลือกการกำหนดค่าต่อไปนี้ (ด้วย Galileo - eclipse 3.5.x ดูด้านล่างสำหรับ 3.4หรือสูงกว่าสำหรับHelios 3.6.x ):
(แน่นอนปรับเส้นทางที่สัมพันธ์กัน ปรากฏใน eclipse.ini นี้ไปยังเส้นทางที่ถูกต้องสำหรับการตั้งค่าของคุณ)
หมายเหตุ: สำหรับeclipse3.5แทนที่startup
และlauncher.library
บรรทัดโดย:
-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
-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
ดูคำตอบต้นฉบับของฉันด้านบนสำหรับข้อมูลเพิ่มเติม
org.eclipse.equinox.p2.reconciler.dropins.directory
ตัวเลือกมีข้อผิดพลาดที่มีเบรกพอยต์ที่ถูกละเว้นจริง ๆ แล้วเกี่ยวข้องกับ JDK
ใช้ JDK6u16 ขึ้นไปเพื่อเปิด eclipse (จากนั้นคุณสามารถกำหนด JDK ได้มากเท่าที่คุณต้องการคอมไพล์ภายใน eclipse: ไม่ใช่เพราะคุณเรียกใช้ eclipse ด้วย JDK6 ที่คุณจะต้องคอมไพล์ด้วย JDK เดียวกันนั้น)
บันทึกการใช้งานของ:
--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
ในฐานะที่เป็นบันทึกไว้ในEclipse วิกิพีเดีย ,
Eclipse 3.3
--launcher.XXMaxPermSize
สนับสนุนการโต้เถียงครั้งใหม่ที่จะปล่อยไปนี้:
หาก VM ที่ใช้เป็น Sun VM และยังไม่มี-XX:MaxPermSize=
อาร์กิวเมนต์ VM ดังนั้นตัวเรียกใช้งานจะเพิ่มลง-XX:MaxPermSize=256m
ในรายการของอาร์กิวเมนต์ VM ที่ถูกใช้โดยอัตโนมัติ
3.3 launcher นั้นสามารถระบุ Sun VM บน Windows ได้เท่านั้น
ตามรายละเอียดในรายการนี้ :
ไม่ใช่ vms ทั้งหมดที่ยอมรับการ
-XX:MaxPermSize
โต้แย้งซึ่งเป็นเหตุผลว่าทำไมมันถูกส่งผ่านในลักษณะนี้ อาจมี (หรืออาจไม่) มีปัญหากับการระบุ sun vms
หมายเหตุ: Eclipse 3.3.1 มีข้อผิดพลาดที่ตัวเรียกใช้ไม่สามารถตรวจพบ Sun VM ได้ดังนั้นจึงไม่ใช้ขนาด PermGen ที่ถูกต้อง ดูเหมือนว่านี่อาจเป็นจุดบกพร่องที่รู้จักใน Mac OS X มาเป็นเวลา 3.3.0เช่นกัน
หากคุณใช้ทั้งสองแพลตฟอร์มเหล่านี้ให้เพิ่มการ-XX
ตั้งค่าสถานะไปที่eclipse.ini
ตามที่อธิบายไว้ข้างต้นหมายเหตุ:
- ว่า "
384m
สาย" แปลว่า "การ=384m
" เป็นส่วนหนึ่งของการโต้แย้ง VM ถ้า VM เป็นกรณีที่สำคัญเกี่ยวกับ "m
" จากนั้นจึงเป็นเรื่องนี้- "การ
--launcher.
" คำนำหน้าระบุว่าอาร์กิวเมนต์ที่ถูกบริโภคโดยปล่อยตัวเองและถูกบันทึกอยู่ในข้อโต้แย้งที่เฉพาะเจาะจงปล่อยเพื่อหลีกเลี่ยงการชนชื่อแอพลิเคชันที่มีการขัดแย้ง (มีตัวอย่างอื่น--launcher.library
,--launcher.suppressErrors
)
-vmargs -XX:MaxPermSize=384m
ส่วนหนึ่งคือการโต้แย้งผ่านโดยตรงกับ VM, อ้อมปล่อยทั้งหมดและตรวจสอบไม่เกี่ยวกับผู้ขาย VM ถูกนำมาใช้
สำหรับการตั้งค่าล่าสุดเพิ่มเติมโปรดดูที่คราสกาลิเลโอ 3.5 การตั้งค่าดังกล่าวข้างต้น
การตั้งค่า JVM ที่ดีที่สุดเสมอในความคิดของฉันรวมถึงJDK ล่าสุดที่คุณสามารถหาได้ (ดังนั้นตอนนี้ jdk1.6.0_b07 สูงถึง b16 ยกเว้น b14 และ b15 )
แม้จะมีการตั้งค่าหน่วยความจำที่ค่อนข้างต่ำฉันยังสามารถรันโปรเจ็กต์ java ขนาดใหญ่ (พร้อมกับเว็บเซิร์ฟเวอร์) บนเดสก์ท็อปเก่า (2002) ด้วย 2Go RAM
-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
ดูคำตอบ SO ของ GKellyและบล็อกของ Piotr Gabryanczykสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกใหม่
คุณสามารถลองเปิดตัว:
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
การตั้งค่าสำหรับSun / Oracle Javaเวอร์ชัน "1.6.0_31" และEclipse 3.7ทำงานบน 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
โปรดทราบว่าสิ่งนี้ใช้เพียง 200 MB สำหรับฮีปและ 150 MB สำหรับฮีปที่ไม่ใช่ หากคุณใช้ปลั๊กอินขนาดใหญ่คุณอาจต้องการเพิ่มขีด จำกัด "-Xmx200m" และ "-XX: MaxPermSize = 150m"
เป้าหมายการปรับให้เหมาะสมหลักสำหรับแฟล็กเหล่านี้คือการลดเวลาแฝงให้เหลือน้อยที่สุดในทุกกรณีและเป้าหมายการปรับให้เหมาะสมลำดับที่สองลดการใช้หน่วยความจำ
-showlocation
เพื่อให้ง่ายขึ้นในการทำให้ eclipse ทำงานสองครั้งและรู้ว่าพื้นที่ทำงานที่คุณกำลังทำ
Eclipse 3.6 เพิ่มตัวเลือกการตั้งค่าเพื่อระบุสิ่งที่จะแสดงWorkspace name (shown in window title)
ซึ่งทำงานได้ดีกว่า-showlocation
ด้วยเหตุผลสามประการ:
หากคุณกำลังจะไปกับการอัปเดต jdk6 14 ฉันขอแนะนำให้ใช้ตัวเก็บขยะ G1 ซึ่งดูเหมือนว่าจะช่วยให้ประสิทธิภาพ
หากต้องการทำเช่นนั้นให้ลบการตั้งค่าเหล่านี้:
-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing
และแทนที่ด้วยสิ่งเหล่านี้:
-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC
หากคุณใช้ Linux + Sun JDK / JRE 32bitsให้เปลี่ยน "-vm" เป็น:
-vm
[your_jdk_folder]/jre/lib/i386/client/libjvm.so
หากคุณใช้ Linux + Sun JDK / JRE 64bitsให้เปลี่ยน "-vm" เป็น:
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so
มันใช้งานได้ดีสำหรับฉันบน Ubuntu 8.10 และ 9.04
คุณสามารถลองรันด้วย JRockit มันเป็น JVM ที่ปรับให้เหมาะกับเซิร์ฟเวอร์ แต่แอปพลิเคชันไคลเอนต์ที่ใช้งานมานานจำนวนมากเช่น IDE's ทำงานได้ดีบน JRockit Eclipse จะไม่มีข้อยกเว้น JRockit ไม่มีพื้นที่เหลือดังนั้นคุณไม่จำเป็นต้องกำหนดค่า
เป็นไปได้ที่จะกำหนดเป้าหมายหยุดชั่วคราว (ms) เพื่อหลีกเลี่ยง gc ที่หยุดชั่วคราวที่ค้างอยู่ใน UI
-showsplash
org.eclipse.platform
-vm
C:\jrmc-3.1.2-1.6.0\bin\javaw.exe
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20
ฉันมักจะไม่รำคาญการตั้งค่า -Xmx และ -Xms และปล่อยให้ JRockit เพิ่มจำนวนฮีปตามที่เห็นจำเป็น หากคุณเปิดใช้งานแอปพลิเคชัน Eclipse ด้วย JRockit คุณสามารถตรวจสอบโปรไฟล์และค้นหาหน่วยความจำรั่วในแอปพลิเคชันของคุณโดยใช้ชุดเครื่องมือ JRockit Mission Control คุณดาวน์โหลดปลั๊กอินจากไซต์อัพเดตนี้ หมายเหตุใช้ได้กับ Eclipse 3.3 และ Eclipse 3.4 เท่านั้น
นี่คือการตั้งค่าของฉันเองสำหรับ Eclipse ที่ทำงานบนแล็ปท็อป i7 2630M 16GB RAM การตั้งค่านี้ใช้มานานหนึ่งสัปดาห์โดยไม่ต้องหยุดทำงานเพียงครั้งเดียวและ Eclipse 3.7 ทำงานได้อย่างราบรื่น
-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
การคำนวณ: สำหรับ Win 7 x64
-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
และการตั้งค่าเหล่านี้ได้ผลเช่นเดียวกับฉัน ฉันใช้ OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24
การตั้งค่าของฉันเอง (Java 1.7, แก้ไขสำหรับ 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
Eclipse ชอบ RAM มาก ใช้อย่างน้อย -Xmx512M มากขึ้นถ้ามี
หากคุณชอบฉันและมีปัญหากับ Oracle รีลีสปัจจุบัน 1.6 คุณอาจต้องการอัพเดต JDK หรือชุดของคุณ
-XX: MaxPermSize. ข้อมูลเพิ่มเติมมีอยู่ที่นี่: http://java.dzone.com/articles/latest-java-update-fixes
XX: + UseParallelGC นั่นเป็นตัวเลือกที่ยอดเยี่ยมที่สุดที่เคย !!!
-vm
C: \ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll
หากต้องการระบุเวอร์ชัน Java ที่คุณใช้และใช้ dll แทนการเปิดใช้กระบวนการ javaw
นี่คือสิ่งที่ฉันใช้ (แม้ว่าฉันมีไว้ในทางลัดแทนที่จะเป็นไฟล์การตั้งค่า):
eclipse.exe -showlocation -vm "C: \ Java \ jdk1.6.0_07 \ bin \ javaw.exe" -vmargs -Xms256M -Xmx768M -XX: + UseParallelGC -XX: MaxPermSize = 128M
eclipse.ini
ตั้งค่าใหม่และปรับปรุงสำหรับ Helios 3.6 อยู่ที่นี่ (ด้านล่างในคำตอบใหม่): stackoverflow.com/questions/142357/…