สารบัญ
ชวา หน่วยความจำรับการใช้งาน Runtime.getRuntime().totalMemory, หน่วยความจำฟรี
ชวา ส่งกลับข้อมูล "ทั้งหมด", "ใช้แล้ว" และ "ใช้งานได้สูงสุด" เกี่ยวกับข้อมูลหน่วยความจำเครื่องเสมือน
คำอธิบายแต่ละรายการมีดังนี้
- ทั้งหมด...Runtime.getRuntime().totalMemory()นี่คือจำนวนหน่วยความจำที่จัดสรรให้กับเครื่องเสมือน Java
- ปริมาณการใช้...Runtime.getRuntime().totalMemory()- -Runtime.getRuntime().freeMemory()กลายเป็น,
การใช้หน่วยความจำของอ็อบเจ็กต์ที่จัดสรรไว้ในหน่วยความจำในปัจจุบัน - ใช้งานได้สูงสุด...Runtime.getRuntime().maxMemory()คือจำนวนหน่วยความจำสูงสุดที่ Java Virtual Machine จะพยายามใช้
หากจำนวนที่ใช้เข้าใกล้หน่วยความจำทั้งหมดและหน่วยความจำว่างไม่สามารถรักษาความปลอดภัยได้แม้ว่าจะมีการรวบรวมขยะ เครื่องเสมือน Java จะขยายเป็นความจุ "สูงสุดที่มีอยู่"
โปรแกรมตัวอย่าง
/** * ส่งกลับข้อมูลเกี่ยวกับหน่วยความจำรวมของเครื่องเสมือน Java จำนวนที่ใช้ และ * จำนวนหน่วยความจำสูงสุดที่เครื่องเสมือนพยายามใช้ * @return ข้อมูลหน่วยความจำเครื่องเสมือน Java */ public static String getMemoryInfo() { DecimalFormat f1 = new DecimalFormat("#,###KB"); DecimalFormat f2 = new DecimalFormat("##.#"); long free = Runtime.getRuntime ( ).freeMemory() / 1024; long Total = Runtime.getRuntime().totalMemory() / 1024; long max = Runtime.getRuntime().maxMemory() / 1024; long used = รวม - ฟรี; double ratio = ( ใช้แล้ว * 100 / (double)total); String info = "ข้อมูลหน่วยความจำ Java: Total = + f1.format(total) + ", " + "Used = + f1.format(used) + " (" + f2.format( อัตราส่วน) + "%)," + "maximum available="+f1.format(max); return info; }
ผลการดำเนินการ 1
◆ตัวอย่างการดำเนินการ
โมฆะคงสาธารณะหลัก (สตริง [] args) { System.out.println (getMemoryInfo ()); }
◆ผลลัพธ์เอาท์พุต
ข้อมูลหน่วยความจำ Java: ทั้งหมด=1,984KB การใช้งาน=458KB (23.1%) ใช้งานได้สูงสุด=65,088KB
ผลการดำเนินการ 2
◆ตัวอย่างการดำเนินการ
ลองเปลี่ยนขนาดฮีป Java และรัน
ค่าของขนาดฮีป Java สามารถระบุเป็นอ็อพชันของคำสั่ง Java ได้
ชวา -Xms64m -Xmx512m หลัก
-Xms ขนาดฮีปเริ่มต้น
ระบุการจัดสรรหน่วยความจำเริ่มต้นให้กับเครื่องเสมือน Java ค่าเริ่มต้นคือ 2MB
-Xmx ขนาดฮีปสูงสุด
ระบุการจัดสรรหน่วยความจำสูงสุดให้กับเครื่องเสมือน Java ค่าเริ่มต้นคือ 64MB
โมฆะคงสาธารณะหลัก (สตริง [] args) { System.out.println (getMemoryInfo ()); }
◆ผลลัพธ์เอาท์พุต
ข้อมูลหน่วยความจำ Java: ทั้งหมด=65,088KB การใช้งาน=524KB (0.8%) ใช้งานได้สูงสุด=520,256KB
"Total Runtime.getRuntime().totalMemory()" คือ-Xms, "จำนวนสูงสุดที่ Runtime.getRuntime().maxMemory()" คือ-Xmxมันเชื่อมโยงกับ.