【发布时间】:2022-09-23 12:44:56
【问题描述】:
我想知道如何在 C# 中使用 Java 中的以下方法。
Runtime.freeMemory()
Runtime.totalMemory()
Runtime.maxMemory()
我想知道如何在 C# 中使用 Java 中的以下方法。
Runtime.freeMemory()
Runtime.totalMemory()
Runtime.maxMemory()
// Java
Runtime rt = Runtime.getRuntime();
System.out.printf("MEM: %,d/%,d/%,d\n", rt.freeMemory(), rt.totalMemory(), rt.maxMemory());
// C#
GCMemoryInfo memoryInfo = GC.GetGCMemoryInfo(GCKind.Any);
long maxMemory = memoryInfo.TotalAvailableMemoryBytes;
long totalMemory = GC.GetTotalMemory(false);
long freeMemory = maxMemory - totalMemory;
Console.WriteLine($"MEM: {freeMemory:#,##0}/{totalMemory:#,##0}/{maxMemory:#,##0}");
这种方法有什么问题吗?
【讨论】: