คำถามติดแท็ก jvm-arguments

12
วิธีเพิ่มขีด จำกัด หน่วยความจำ IDE ใน IntelliJ IDEA บน Mac
ฉันใช้ IDEA 12 Leda กับ Mountain Lion ฉันต้องการเพิ่มหน่วยความจำสูงสุดที่ IDE สามารถใช้ได้ ฉันตั้งค่า VMOptions ในไฟล์ Info.plist ให้เป็น -Xmx2048m -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar เมื่อฉันเปิด IDEA ฉันยังคงเห็นหน่วยความจำสูงสุดที่ 711m jps -v แสดง VMOptions ของฉันโหลดแล้ว แต่มันถูกแทนที่ด้วยตัวเลือกต่อไปนี้ 29388 **-Xmx2048m** -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar -Xms128m **-Xmx800m** -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=64m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops -Didea.paths.selector=IdeaIC12 -Dsun.java2d.noddraw=true -Didea.max.intellisense.filesize=2500 -Didea.dynamic.classpath=false -Didea.jars.nocopy=false -Dsun.java2d.d3d=false -Dapple.awt.fullscreencapturealldisplays=false -Dapple.laf.useScreenMenuBar=true …

3
-XX: MaxPermSize ทำอะไร
โดยเฉพาะเหตุใดจึงช่วยแก้ไขปัญหา PermGen OutOfMemoryError นอกจากนี้คะแนนโบนัสสำหรับคำตอบที่ชี้ให้ฉันไปที่เอกสารเกี่ยวกับข้อโต้แย้ง JVM ...
260 java  jvm  jvm-arguments 

3
JVM ตั้งค่าสถานะ CMSClassUnloadingEnabled ทำอะไรได้จริง
ฉันไม่สามารถหาคำจำกัดความของสิ่งที่ธงชาติ Java VM CMSClassUnloadingEnabledทำได้จริงนอกเหนือจากคำจำกัดความระดับสูงที่คลุมเครือเช่น "กำจัดปัญหา PermGen ของคุณ" ( ซึ่งไม่ใช่ btw) ฉันดูเว็บไซต์ของ Sun / Oracle แล้วและแม้แต่รายการตัวเลือกก็ไม่ได้พูดว่าทำอะไร จากการคาดคะเนชื่อของธงฉันเดาว่า CMS Garbage Collector ไม่ได้เป็นค่าเริ่มต้นในการยกเลิกการโหลดคลาสและค่าสถานะนี้จะเปิดใช้ แต่ฉันไม่แน่ใจ

5
วิธีรับอาร์กิวเมนต์ VM จากภายในแอปพลิเคชัน Java
ฉันต้องตรวจสอบว่ามีตัวเลือกบางอย่างที่สามารถส่งผ่านไปยัง JVM ได้อย่างชัดเจนหรือมีค่าเริ่มต้น จะเจาะจงมากขึ้น: ฉันต้องสร้างหนึ่งเธรดที่มีขนาดสแต็คดั้งเดิมสูงกว่าค่าเริ่มต้น แต่ในกรณีที่ผู้ใช้ต้องการดูแลสิ่งต่าง ๆ ด้วยตัวเองโดยระบุ-Xssตัวเลือกที่ฉันต้องการสร้างเธรดทั้งหมดที่มีขนาดสแต็คเริ่มต้น (ซึ่งจะถูกระบุโดยผู้ใช้ในตัวเลือก -Xss) ฉันได้ตรวจสอบคลาสที่ชอบjava.lang.Systemและjava.lang.Runtimeแต่สิ่งเหล่านี้ไม่ได้ให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับอาร์กิวเมนต์ VM มีวิธีใดบ้างที่จะรับข้อมูลที่ฉันต้องการ
162 java  jvm  jvm-arguments 

3
ความแตกต่างระหว่าง _JAVA_OPTIONS, JAVA_TOOL_OPTIONS และ JAVA_OPTS
ฉันคิดว่ามันจะดีที่จะมีการเปรียบเทียบระหว่างและ_JAVA_OPTIONS JAVA_TOOL_OPTIONSฉันค้นหามาซักพักหนึ่งแล้ว แต่ฉันไม่สามารถหาอะไรได้เลยฉันหวังว่าเราจะสามารถค้นหาความรู้ได้ที่นี่ใน Stackoverflow JAVA_OPTSถูกรวมไว้เพื่อความสมบูรณ์ มันไม่ได้เป็นส่วนหนึ่งของ JVM แต่มีคำถามมากมายเกี่ยวกับเรื่องนี้ในป่า สิ่งที่ฉันรู้: จนถึงตอนนี้ฉันได้พบว่า: JAVA_OPTSไม่ได้ใช้โดย JDK แต่เป็นแอพอื่น ๆ (ดูบทความนี้ ) JAVA_TOOL_OPTIONSและ_JAVA_OPTIONSเป็นวิธีในการระบุอาร์กิวเมนต์ JVM เป็นตัวแปรสภาพแวดล้อมแทนพารามิเตอร์บรรทัดคำสั่ง ถูกหยิบขึ้นมาอย่างน้อยjavaและjavac พวกเขามีความสำคัญนี้: _JAVA_OPTIONS (เขียนทับคนอื่น ๆ ) พารามิเตอร์บรรทัดคำสั่ง JAVA_TOOL_OPTIONS (ถูกแทนที่โดยผู้อื่น) สิ่งที่ฉันอยากรู้ มีเอกสารอย่างเป็นทางการใด ๆ ที่เปรียบเทียบJAVA_TOOL_OPTIONSและ_JAVA_OPTIONS มีความแตกต่างอื่น ๆ ระหว่างJAVA_TOOL_OPTIONSและ_JAVA_OPTIONS(ยกเว้นจากความสำคัญ) ไฟล์ที่เรียกใช้งานได้JAVA_TOOL_OPTIONSและ_JAVA_OPTIONS(นอกเหนือจากjavaและjavac) ข้อ จำกัด ใด ๆ เกี่ยวกับสิ่งที่สามารถรวมอยู่ในJAVA_TOOL_OPTIONSและ_JAVA_OPTIONS เอกสารอย่างเป็นทางการ ฉันยังไม่ได้สามารถที่จะหาเอกสารใด ๆ _JAVA_OPTIONSเกี่ยวกับ เอกสารสำหรับJAVA_TOOL_OPTIONSไม่หลั่งน้ำตาแสงมากเกี่ยวกับความแตกต่าง: เนื่องจากบรรทัดคำสั่งไม่สามารถเข้าถึงหรือแก้ไขได้เสมอตัวอย่างเช่นใน VMs ฝังตัวหรือเพียงแค่เปิดตัว VMs …
151 java  jvm  jvm-arguments 

6
จะเพิ่มพื้นที่กองให้กับ Jenkins ได้อย่างไรเมื่อเริ่มเป็นบริการภายใต้ Windows
ฉันต้องการเพิ่มพื้นที่ฮีปที่มีให้สำหรับเจนกินส์ แต่เนื่องจากมีการติดตั้งเป็นบริการฉันไม่รู้ว่าจะต้องทำอย่างไร

5
ดีบักแอ็พพลิเคชัน java โดยไม่เริ่ม JVM ด้วยอาร์กิวเมนต์ดีบัก
โดยปกติในการแนบดีบักเกอร์กับ jvm ที่รันอยู่คุณจะต้องเริ่ม jvm ด้วยอาร์กิวเมนต์ดังต่อไปนี้: > java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n ตอนนี้ถ้าฉันต้องการดีบักกระบวนการที่ไม่ได้เริ่มในโหมดดีบักฉันจะทำอย่างไร? สถานการณ์นี้เกิดขึ้นเมื่อระบบการผลิต (เช่นเริ่มต้นโดยไม่มีอาร์กิวเมนต์ดีบัก) แสดงข้อผิดพลาด 'สุ่ม' (ฉันใช้คำว่าหลวม ๆ ) ดังนั้นฉันจึงไม่สามารถรีสตาร์ท jvm ด้วยอาร์กิวเมนต์ที่เหมาะสมได้เพราะไม่มีใครรู้วิธีสร้างจุดบกพร่องอีกครั้ง เป็นไปไม่ได้ที่จะแนบ JVM ในสถานการณ์นี้หรือไม่? เพียงเพื่อชี้แจงว่าเป็นไปไม่ได้ที่จะใช้เครื่องมือเช่น jdb เพื่อแนบกับ JVM ที่รันอยู่แล้วเว้นแต่จะเริ่มต้นในโหมดดีบัก จากหน้า JVM man อีกวิธีในการใช้ jdb คือการเชื่อมต่อกับ Java VM ที่กำลังทำงานอยู่ VM ที่จะดีบักด้วย jdb ต้องเริ่มต้นด้วยตัวเลือกต่อไปนี้:

12
“ เกิดข้อผิดพลาดระหว่างการเริ่มต้น VM; ไม่สามารถจองพื้นที่เพียงพอสำหรับฮีปวัตถุ” โดยใช้ -Xmx3G
ก่อนอื่นฉันมีกล่องที่มีแรม 8GB ดังนั้นฉันสงสัยว่าหน่วยความจำทั้งหมดเป็นปัญหา แอปพลิเคชั่นนี้ทำงานได้ดีบนเครื่องที่มี 6GB หรือน้อยกว่า ฉันพยายามจองพื้นที่ 3GB โดยใช้ -Xmx3G ภายใต้ "VM Arguments" ใน Run Configurations in Eclipse ทุกครั้งที่ฉันพยายามจองมากกว่า 1500mb ฉันได้รับข้อผิดพลาดนี้:“ เกิดข้อผิดพลาดระหว่างการเริ่มต้น VM; ไม่สามารถจองพื้นที่เพียงพอสำหรับฮีปวัตถุ” โดยใช้ -Xmx3G เกิดขึ้นที่นี่คืออะไร?

5
การเพิ่มขนาดฮีปสูงสุดของ JVM สำหรับแอ็พพลิเคชันที่ใช้หน่วยความจำมาก
ฉันต้องการเรียกใช้แอปพลิเคชัน Java memory เร่งรัดที่ใช้มากกว่า 2GB แต่ฉันมีปัญหาในการเพิ่มขนาดสูงสุดของฮีป จนถึงตอนนี้ฉันได้ลองใช้วิธีการต่อไปนี้แล้ว: การตั้งค่าพารามิเตอร์ -Xmx เช่น -Xmx3000m วิธีนี้ล้มเหลวในการสร้าง JVM จากที่ฉันใช้ googled ดูเหมือนว่า -Xmx จะต้องน้อยกว่า 2GB ใช้-XX: + AggressiveHeap ตัวเลือก เมื่อฉันลองใช้วิธีนี้ฉันได้รับข้อผิดพลาด 'หน่วยความจำไม่เพียงพอ' ซึ่งบอกว่าขนาดฮีปคือ 1273.4 MB แม้ว่าคอมพิวเตอร์ของฉันจะมีหน่วยความจำ 8GB ก็ตาม มีแนวทางอื่นที่ฉันสามารถลองเพิ่มขนาดฮีพสูงสุดของ JVM ได้หรือไม่? นี่คือสรุปข้อมูลจำเพาะของคอมพิวเตอร์: ระบบปฏิบัติการ: Windows 7 (64 บิต) หน่วยประมวลผล: Intel Core i7 (2.66 GHz) หน่วยความจำ: 8 GB java …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.