用vc++做好的工程运行时占内存太大,是不是载入的问题啊,如何减小啊?请高手指点.......

2025-01-01 21:26:16
推荐回答(3个)
回答1:

这有很多情况的了……比如你做的是MFC的工程,那要载入的DLL文件就会很多,所以运行时间比较慢,但是一般来说运行时都不会占太多内存的,小的程序一般都不会上MB的,你可以调任务管理器出来看看。

VC里面在编译时提供了两个版本,一个是Debug版本一个是Release版本,两者比较的话后者的运行效率会更高一些,但是相对的就没有了一些VC本身的出错检查和判断。如果你觉得慢的话可以试试后面那个。VS08的修改方法是直接在工具栏上的解决方案配置下拉栏中选择Release。

以上仅仅是从工程的角度看,引起内存占用过多还有可能是你的算法不对,这个就要具体对症下药了,建议你看看有关算法方面的书籍,来对你的算法进行优化。 

对补充的回答:

3DS模型我没用过,所以也不太清楚,据我所知MFC是比较稳定的环境,一般不太会出现内存溢出等的问题,看你模型是怎么样加载的吧,动态链接库?有可能那个模型比较大,比较耗内存吧。我至今为止写的MFC程序内存占用最大的应该在30MB左右,而且那个是内置一个播放器的。如果是软件模拟处理图像的模型,那应该是比较耗内存的,毕竟平时这些工作是交给硬件处理的。比如用OPENGL或者DX就是主要用显卡而不是内存的

回答2:

尽量将固定数组转化为动态分配。

回答3:

您好,这样来说吧,如果你是用.Net框架下的语言写的软件,他属于托管代码,也就是它运行时候需要一个虚拟机来运行,当这个虚拟机开发出对应不同系统的版本的时候,你这个段代码,就能执行在不同系统上面。这个就是。Net和Java语言的平台无关性的理念。
当你系统要执行这个虚拟机,自然会占用比较大的内存。只是其一,其二,编程的习惯也有很大的关系,比如,可以1条语句可以完成的,不需要弄多一个变量,弄成两个,又比如有些不需要的文件头引用可以去掉,尽可能的用程序见到调用,不要写太多重复代码,等等优化手段,您的程序时可以减少内存占用的。希望我的回答能给您帮助。