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

Java Virtual Machine (JVM) เปิดใช้งานชุดของโปรแกรมซอฟต์แวร์คอมพิวเตอร์และโครงสร้างข้อมูลเพื่อใช้โมเดลเครื่องเสมือนสำหรับการทำงานของโปรแกรมคอมพิวเตอร์และสคริปต์อื่น ๆ ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องกับเครื่องมือที่จัดทำโดย JVM หรือวิธีการทำงานในสถานการณ์เฉพาะ

4
เทคนิคการกลับด้านลูปคืออะไร?
ฉันกำลังอ่านเอกสารที่พูดถึงเทคนิคการเพิ่มประสิทธิภาพคอมไพเลอร์แบบทันเวลา (JIT) สำหรับ Java หนึ่งในนั้นคือ "loop inversion" และเอกสารระบุว่า: คุณแทนที่whileลูปปกติด้วยdo-whileลูป และ do-whileลูปถูกตั้งค่าภายในifอนุประโยค การเปลี่ยนนี้ทำให้กระโดดน้อยลงสองครั้ง การผกผันของลูปทำงานอย่างไรและเพิ่มประสิทธิภาพเส้นทางรหัสของเราอย่างไร หมายเหตุ: จะดีมากถ้าใครสักคนสามารถอธิบายด้วยตัวอย่างของโค้ด Java และวิธีที่ JIT ปรับให้เหมาะสมกับโค้ดเนทีฟและเหตุใดจึงเหมาะสมที่สุดในโปรเซสเซอร์สมัยใหม่

4
ReservedCodeCacheSize และ InitialCodeCacheSize คืออะไร
ใครจะกรุณาอธิบายสิ่งที่ตัวเลือก JVM ReservedCodeCacheSizeและInitialCodeCacheSizeมีอะไรบ้าง โดยเฉพาะเมื่อใด / เหตุใดฉันจึงต้องการเปลี่ยนแปลง ฉันจะตัดสินใจได้อย่างไรว่าขนาดที่เหมาะสมคืออะไร? นี่คือสิ่งที่เอกสารกล่าวว่า: -XX: ReservedCodeCacheSize = 32m ขนาดแคชของรหัสที่สงวนไว้ (เป็นไบต์) - ขนาดแคชโค้ดสูงสุด [Solaris 64-bit, amd64 และ -server x86: 2048m; ใน 1.5.0_06 และรุ่นก่อนหน้า Solaris 64 บิตและ 64: 1024 ม.]
89 java  jvm  jvm-hotspot 

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 …

30
โครงการ Android Studio Gradle“ ไม่สามารถเริ่มกระบวนการ daemon / การเริ่มต้น VM”
เวอร์ชัน Android Studio (เบต้า) 0.8.4 เวอร์ชัน OS: Windows 8 เวอร์ชัน Java JRE / JDK: 1.8.0_11 Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon …
88 java  android  jvm  daemon  beta 

4
การรัน jmap ทำให้ไม่สามารถเปิดไฟล์ซ็อกเก็ตได้
ฉันต้องรันjmapเพื่อที่จะถ่ายฮีปดัมพ์ของกระบวนการของฉัน แต่jvmกลับ: Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can be used when the target process is not responding ดังนั้นฉันจึงใช้-F: ./jmap -F -dump:format=b,file=heap.bin 10330 Attaching to process ID 10331, please wait... Debugger attached successfully. Server compiler detected. JVM version is …
88 java  linux  jvm  jvm-hotspot 

2
VisualVM - สถานะเธรด
ใครจะกรุณาอธิบายให้ฉันความแตกต่างระหว่างSleeping, Wait, ParkและMonitorรัฐตั้งกระทู้ใน VisualVM นี่คือสิ่งที่ฉันพบ: Running: thread ยังคงทำงานอยู่ Sleeping: thread is sleeping (method yield () ถูกเรียกบนอ็อบเจ็กต์เธรด) Wait: เธรดถูกบล็อกโดย mutex หรือสิ่งกีดขวางและกำลังรอให้เธรดอื่นคลายการล็อก Parkเธรดที่จอดอยู่จะถูกระงับจนกว่าจะได้รับอนุญาต โดยปกติแล้วการยกเลิกการจอดเธรดทำได้โดยการเรียกเมธอด uncark () บนอ็อบเจ็กต์เธรด Monitor: เธรดกำลังรอเงื่อนไขที่จะเป็นจริงเพื่อดำเนินการต่อ สิ่งที่ฉันไม่เข้าใจคือสวนสาธารณะสิ่งที่ระงับเธรดจริงหรือ? ฉันจะตรวจจับโค้ดที่ทำให้เธรดระงับการทำงานได้อย่างไร ใครช่วยแนะนำฉันในเรื่องนี้ ขอบคุณ.
86 java  jvm  visualvm  jvisualvm 

1
แฟล็ก UseCompressedOops JVM ทำอะไรและฉันควรใช้เมื่อใด
แฟล็ก HotSpot JVM -XX:+UseCompressedOopsทำอะไรและฉันควรใช้เมื่อใด ฉันจะเห็นความแตกต่างของประสิทธิภาพและการใช้งานหน่วยความจำประเภทใดเมื่อใช้บนอินสแตนซ์ Java 64 บิต (เทียบกับไม่ได้ใช้งาน)
85 java  memory  jvm  jvm-hotspot 


3
คอมไพเลอร์ใด ๆ สำหรับ JVM ใช้ goto "wide" หรือไม่?
ฉันคิดว่าคุณส่วนใหญ่รู้ว่าgotoเป็นคำหลักที่สงวนไว้ในภาษา Java แต่ไม่ได้ใช้จริง และคุณก็อาจจะรู้ว่าgotoเป็น opcode Java Virtual Machine (JVM) ฉันคิดว่าทุกคนที่มีความซับซ้อนของโครงสร้างการควบคุมการไหลของ Java, Scala และ Kotlin กำลังที่ระดับ JVM, ดำเนินการโดยใช้การรวมกันของบางgotoและifeq, ifle, ifltฯลฯ ดูที่ข้อกำหนด JVM https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.goto_wฉันเห็นว่ามันมีgoto_wopcode เช่นกัน ในขณะที่gotoออฟเซ็ตสาขา 2 ไบต์goto_wจะใช้ออฟเซ็ตสาขา4 ไบต์ สเป็คระบุว่า แม้ว่าคำสั่งgoto_wใช้ออฟเซ็ตสาขา 4 ไบต์ปัจจัยอื่น ๆ จำกัด ขนาดของวิธีการเป็น 65535 ไบต์ (§4.11) ขีด จำกัด นี้อาจเพิ่มใน Java Virtual Machine รุ่นที่วางจำหน่ายในอนาคต เสียงที่ฉันชอบgoto_wคือการพิสูจน์ในอนาคตเหมือนกับ*_wopcodes อื่น ๆ แต่ก็ยังเกิดขึ้นกับผมว่าอาจจะgoto_wสามารถนำมาใช้กับทั้งสองไบต์สำคัญมากพุ่งออกมาและทั้งสองไบต์อย่างมีนัยสำคัญน้อยลงเช่นเดียวกับgotoที่มีการปรับเปลี่ยนตามความจำเป็น ตัวอย่างเช่นกำหนด Java …
47 java  jvm  goto 

4
ความแตกต่างระหว่าง <คืออะไร ขยายฐาน> และ <T ขยายฐาน>?
ในตัวอย่างนี้: import java.util.*; public class Example { static void doesntCompile(Map&lt;Integer, List&lt;? extends Number&gt;&gt; map) {} static &lt;T extends Number&gt; void compiles(Map&lt;Integer, List&lt;T&gt;&gt; map) {} static void function(List&lt;? extends Number&gt; outer) { doesntCompile(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); compiles(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); } } doesntCompile() ไม่สามารถคอมไพล์ด้วย: Example.java:9: error: incompatible types: HashMap&lt;Integer,List&lt;Integer&gt;&gt; cannot be converted to …

3
ตัวเลือก java.security.egd นั้นใช้ทำอะไร
ในโครงการที่ฉันกำลังดำเนินการแอปพลิเคชันจะเปิดตัวโดยใช้คำสั่งที่คล้ายกับสิ่งนี้: java -Djava.security.egd=file:/dev/urandom -jar app.jar ฉันไม่เคยเห็นjava.security.egdตัวเลือกมาก่อน ดูเหมือนว่าจะใช้การกำหนดค่าการสร้างตัวเลขสุ่มในแอปพลิเคชัน Java ถูกต้องหรือไม่ ควรใช้เมื่อใด
22 java  jvm 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.