当前位置:编程学习 > C#/ASP.NET >>

程序运行慢的问题

啊 我又来了!进来在论坛真是收获不小啊……

读文件—解析——更新至数据库  本来一个很简单的程序,但运行时间长了,现在变得越来越慢。任务管理器监视内存使用情况达到201,000K  有时甚至更多。程序中使用了using……  但没有使用线程,是什么情况呢? 数据库 任务 --------------------编程问答-------------------- 有些资源必须及时释放,完全指望垃圾回收不靠谱
及时Clear,及时Close,及时Dispose --------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
有些资源必须及时释放,完全指望垃圾回收不靠谱
及时Clear,及时Close,及时Dispose

你这不是废话么,别人用了using....会自动释放的
这个可能要优化代码,,,比如你读文件,插入到数据库之间的循环,看能不能优化下。。或者在网上搜索一些更好的代码。。。。
纯属建议。。。。 --------------------编程问答-------------------- 更新至数据库,很多对象要及时的Dispose,不能一味地指望framework回收垃圾 --------------------编程问答--------------------
引用 2 楼 zhuyu19911016520 的回复:
引用 1 楼 gxingmin 的回复:
有些资源必须及时释放,完全指望垃圾回收不靠谱
及时Clear,及时Close,及时Dispose
你这不是废话么,别人用了using....会自动释放的
这个可能要优化代码,,,比如你读文件,插入到数据库之间的循环,看能不能优化下。。或者在网上搜索一些更好的代码。。。。
纯属建议。。。。

谁告诉你“using....会自动释放的”
using只是调了一下dispose方法而已,至于释放不释放毛关系没有,如果你的dispose里面什么都没做,那调和不调没区别。

首先查找使用非托管资源的地方,确保释放。然后review一下代码,看看是不是有泄露,就是说无用的对象还被引用着,没有被释放。
如果觉得不好找,可以尝试为类型加计数器,构造的时候加1,析构的时候减1,然后查看是否有泄露 --------------------编程问答-------------------- 读了以后,进程内的类实例没有释放,做成web的,有自动释放机制 --------------------编程问答-------------------- 你这个很难说清楚是什么问题

俺自己对性能问题一向的态度是不轻易用博客园那些大而化之的总结当标杆,一定要实际找出问题的瓶颈在那里,才好具体分析

建议你自己使用Memory profile一类的玩意,实际监控一下到底是什么在消耗内存比较靠谱。找到问题所在了就差不多知道怎么解决了

呵呵Memory profile还是一个挺复杂的工具,如果不知道怎么用到是可以去博客园看看说明文 --------------------编程问答-------------------- 楼主再结合一些压力测试工具,进行并发压测一下看看哪些模块性能瓶颈大 --------------------编程问答-------------------- 首先,你的程序是做什么的,都用了些什么东西,你连这个都不说,让人怎么回答。
其次,可以使用一些内存监控工具查看一下程序运行情况,在什么时候内存会快速增长。
最后,请楼主仔细查看一下程序里循环语句。是不是创建了太多对象。注意一下string a += ""字符串拼接问题
--------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
有些资源必须及时释放,完全指望垃圾回收不靠谱
及时Clear,及时Close,及时Dispose

经典! --------------------编程问答-------------------- 写一个重载Dispose的方法,便于其他地方及时释放。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,