当前位置: 首页 > news >正文

C# AOT生成的hellowwordEXE运行占用多少内存1-5MB?

C# 使用 AOT(Ahead - Of - Time,提前编译)生成的 "Hello, World!" 可执行文件在运行时占用的内存会受到多种因素的影响,以下是详细分析:

影响内存占用的因素

  1. 操作系统:不同的操作系统(如 Windows、Linux、macOS)对进程的内存管理机制不同,会导致内存占用有所差异。
  2. 运行环境:包括系统中已运行的其他程序、系统的内存管理策略等。
  3. 编译器和运行时配置:不同版本的 .NET SDK 以及编译时的配置选项(如优化级别)会影响生成的可执行文件的内存占用。

大致的内存占用情况

  • Windows 系统
    • 在 Windows 上,使用 .NET 6 及更高版本的 AOT 编译生成的简单 "Hello, World!" 程序,初始内存占用通常在几兆字节左右。具体来说,可能在 2 - 5 MB 之间。这其中包含了程序本身的代码段、数据段所占用的内存,以及操作系统为进程分配的一些基本资源(如栈空间等)。
  • Linux 系统
    • 在 Linux 系统中,内存占用一般会相对更低一些。同样的 "Hello, World!" AOT 程序,初始内存占用可能在 1 - 3 MB 左右。这是因为 Linux 的内存管理机制更加轻量级,并且对于一些系统资源的分配更为高效。

示例代码及编译运行步骤

示例代码(Program.cs

csharp

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello, World!");
    }
}

编译为 AOT 可执行文件

确保你已经安装了 .NET 6 或更高版本的 SDK。在终端中执行以下命令:

dotnet publish -r <runtime-identifier> -p:PublishAot=true

其中 <runtime-identifier> 根据你的目标系统进行替换,例如:

  • 对于 Windows x64 系统,使用 win-x64
  • 对于 Linux x64 系统,使用 linux-x64
查看内存占用
  • Windows:可以使用任务管理器查看程序的内存占用情况。在任务管理器的 “详细信息” 选项卡中找到对应的可执行文件,查看其 “内存(专用工作集)” 列。
  • Linux:可以使用 top 或 ps 命令查看程序的内存占用。例如,使用 ps -p <进程 ID> -o %mem,rss 命令,其中 <进程 ID> 是程序的进程 ID。

相关文章:

  • 在线招聘小程序:AI简历筛选与精准职位推荐服务
  • 并发设计_第八章_《C++并发编程实战》笔记
  • CMU15445(2023fall) Project #2 - Extendible Hash Index 匠心分析
  • 区块链与去中心化技术
  • 视频编码中视频帧的类型解析
  • solana区块链地址生成
  • CTFHub技能树-Web-SSRF 解题方法
  • EtherCAT OpenEuler Web控制启动
  • Docker的使用
  • 云容灾落地指南:华为云主备容灾RTO和RPO最佳实践
  • 健康医疗大数据——医疗影像
  • C++ string类(前)
  • 责任链模式如何减少模块之间的耦合
  • 源IP泄露后如何涅槃重生?高可用架构与自动化防御体系设计
  • 本地部署deepseek,局域网链接,添加个人知识库
  • 使用Leaflet 搭建一个前端地图项目,实现类似原神、黑神话悟空的标点互动地图效果
  • CNN的激活函数
  • ElasticSearch入门及安装 ( 一 )
  • MySQL---INSERT语句、UPDATE语句、DELETE语句
  • 深入解析AI音乐创作原理:从算法到艺术
  • 云南铁路:打造“铁路+金融+产业”融合发展生态
  • 解放日报:这是一场需要定力和实力的“科技长征”
  • 外交部官方公众号发布视频:不跪!
  • 保利发展去年净利润约50亿元,在手现金1342亿元
  • 人社部:对个人加大就业补贴支持,对企业加大扩岗支持
  • 上海“生育友好岗”已让4000余人受益,今年将推产假社保补贴政策