THỰC ĐƠN

Lấy mức sử dụng bộ nhớ Java

mục lục

Java ký ứcThu thập dữ liệu sử dụng Runtime.getRuntime().totalMemory, freeMemory

Java Hàm này trả về thông tin về bộ nhớ của máy ảo, bao gồm "Tổng dung lượng", "Đã sử dụng" và "Dung lượng tối đa khả dụng".
Phần giải thích cho từng mục như sau:

  • tổng cộng・・・Runtime.getRuntime().totalMemory()Đây là dung lượng bộ nhớ được cấp phát cho Máy ảo Java.
  • Lượng sử dụng・・・Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()Nó đã trở thành,
    Đây là mức sử dụng bộ nhớ của các đối tượng hiện đang được cấp phát trong bộ nhớ.
  • khả dụng tối đa・・・Runtime.getRuntime().maxMemory()Đây là dung lượng bộ nhớ tối đa mà Máy ảo Java sẽ cố gắng sử dụng.
    Nếu mức sử dụng bộ nhớ gần đạt đến giới hạn và quá trình thu gom rác không thể giải phóng bộ nhớ, Máy ảo Java sẽ mở rộng đến dung lượng "tối đa có sẵn".

Chương trình mẫu

/**
 * 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 = total - free;
    double ratio = (used * 100 / (double)total);
    String info = 
    "Java メモリ情報 : 合計=" + f1.format(total) + "、" +
    "使用量=" + f1.format(used) + " (" + f2.format(ratio) + "%)、" +
    "使用可能最大="+f1.format(max);
    return info;
}


Kết quả thực thi 1

◆Ví dụ

public static void main(String[] args) { System.out.println(getMemoryInfo()); }

◆Kết quả đầu ra

Thông tin bộ nhớ Java: Tổng cộng = 1.984KB, Đã sử dụng = 458KB (23,1%), Dung lượng tối đa khả dụng = 65.088KB

Kết quả thực thi 2

◆Ví dụ
Hãy thử thay đổi kích thước vùng nhớ heap của Java và chạy chương trình.
Kích thước vùng nhớ heap của Java có thể được chỉ định bằng cách sử dụng các tùy chọn lệnh Java.

java -Xms64m -Xmx512m Main

-Xms kích thước heap ban đầu
Chỉ định dung lượng bộ nhớ được cấp phát ban đầu cho Máy ảo Java. Giá trị mặc định là 2MB.
-Xmx Kích thước heap tối đa
Chỉ định dung lượng bộ nhớ tối đa được cấp phát cho Máy ảo Java. Giá trị mặc định là 64MB.

public static void main(String[] args) { System.out.println(getMemoryInfo()); }

◆Kết quả đầu ra

Thông tin bộ nhớ Java: Tổng cộng = 65.088KB, Đã sử dụng = 524KB (0,8%), Dung lượng tối đa khả dụng = 520.256KB

"Tổng thời gian chạy.getRuntime().totalMemory()"-XmsGiá trị tối đa có sẵn là Runtime.getRuntime().maxMemory().-XmxLiên kết này dẫn đến [trang có liên quan].

  • URLをコピーしました!
mục lục