求教了

josephwuxiaameng 2009-04-28 11:58:27
我写了个Windows Form 程序,用C#,VS2008,在Vista下。只是很简单的载入并显示一幅图片。可是运行时内存达到了7000K,程序本身应该没什么问题啦,应为是按书写的啦。这在以前,我用MFC几乎是不可能发生的了,请问有人能够告诉我这是为什么,以及如何改进我的程序呢。越详细越好!!!先谢了啊!!!
...全文
89 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hubofly 2009-04-29
  • 打赏
  • 举报
回复
恩,C#的CLR 加载的东西相对比较多的,小的程序几M 大的几十M的,这个不能算问题感觉
Sysping1 2009-04-29
  • 打赏
  • 举报
回复
图片、系统库的大小导致
zsuswy 2009-04-29
  • 打赏
  • 举报
回复
只能说,占用7000K,很正常,会需要加载很多其它东西。
PandaIT 2009-04-29
  • 打赏
  • 举报
回复
东东呛这一个星期很勤快!
yangqidong 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 josephwuxiaameng 的帖子:]
请问有人能够告诉我这是为什么,以及如何改进我的程序呢。越详细越好!!!先谢了啊!!!
[/Quote]
没看到程序怎么知道为什么?怎么改进?还要详细。。。
yafeya 2009-04-29
  • 打赏
  • 举报
回复
你的图片如果加载到内存里面就会出现这个问题.
哈哈潜伏哥 2009-04-29
  • 打赏
  • 举报
回复
原因如下:
1、就算你在你的窗体程序只写了一行代码,因为.net程序需要.net框架的支持,所以在程序运行的时候,你在程序代码中引用的类库,系统将会加载并调用,所以内存占用比较大,这个是正常的。
2、.net的程序经过编译后并不是直接生成了目标机器代码的,而是生成了一种处于.net框架之上的一种中间语言(CLR),你所写的全部代码都将被.net 框架翻译为机器代码后由操作系统执行。所以.NET程序的运行模式为: C#代码---.net框架---操作系统。这个和MFC是不一样的,因为.NET 框架起到一个翻译执行的作用,所以内存中比如会有相关的框架模块才能正常执行,这个是.NET 程序占用较多内存的主要原因。
3、因为以上两个原因,所以MFC和.net程序的执行效率是有很大差别的,就算在配置最好的机器上,两个功能一样的程序(一个由.NET编写,一个由MFC编写的),你仍然可以感觉到两个程序运行的差别,特别是两个程序的启动速度。

最后说一下.NET 程序的特点:开发简单,很容易上手。缺点是,执行效率不够理想、源代码容易被破解(相对于其他编程语言)。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧