You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java的Runtime.freeMemory()等方法的C#等效实现方式

Java Runtime 内存方法的 C# 等价实现

以下是 Java 中三个 Runtime 内存方法对应的 C# 实现:

  • Runtime.freeMemory()
    Java 中该方法返回 JVM 已分配内存里未被使用的部分。在 C# 中可以通过进程内存和 GC 堆内存的差值近似计算:

    var process = System.Diagnostics.Process.GetCurrentProcess();
    long freeMemory = process.PrivateMemorySize64 - GC.GetTotalMemory(false);
    

    说明:GC.GetTotalMemory(false) 返回当前 GC 堆中已分配但未回收的内存量,PrivateMemorySize64 是进程从系统获取的私有内存总量,两者差值可对应 Java 的 freeMemory。

  • Runtime.totalMemory()
    Java 中该方法返回 JVM 当前已从系统获取的总内存。C# 中直接获取进程的私有内存总量即可:

    long totalMemory = System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64;
    
  • Runtime.maxMemory()
    Java 中该方法返回 JVM 允许分配的最大内存。C# 中有两种常见获取方式:

    // .NET Core 3.0+:获取 GC 可使用的最大内存(考虑系统限制和应用配置)
    long maxMemory = GC.GetGCMemoryInfo().TotalAvailableMemoryBytes;
    
    // 获取操作系统允许进程使用的最大工作集大小
    var process = System.Diagnostics.Process.GetCurrentProcess();
    long maxWorkingSet = process.MaxWorkingSet.ToInt64();
    

内容的提问来源于stack exchange,提问作者SeongSikChae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:36:21