为什么程序运行会变慢? 300分(300分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个delphi程序,大量使用了指针,自定义剪贴版,运行一段时间后会变得非常慢,
但是察看内存,资源均未见减少,而且用memproof检查也未见内存
泄漏. 变慢的症状是似乎很难响应windows message,就好像是在一个大循环
里面没有application.processmessages一样,不过,如果同时在开启一个实例,
则新实例运行完全正常.同时其他软件也运行正常.

请问,会有什么情况能造成上述问题?
 
要看此程序做了什么事情
如果仅仅是“大量使用指针,自定义剪贴版”,不会有问题吧。
是否有使用多线程(而且每个线程内做的事情又非常多)?
 
我没有使用线程. 不过用taskmanager之类的东西察看,程序占用了8个线程.
但是程序一初始化就有8个县城的.

发生问题时在进行正常操作:拷贝/粘贴. (自定义剪贴版)
 
是"拷贝/粘贴"时慢,
还是"拷贝/粘贴"后操作变慢?
 
.....memproof哪儿有?
 
一旦变慢,就全部操作都变慢了...
"就好像是在一个大循环里面没有application.processmessages一样,"

而且再也回复不了,越来越慢. 但是如果同时再执行一个实例却很正常.
 
曹晓钢: http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=212692
 
贴一段代码
 
我都不知道该贴哪一段?
 
是否(含被动)使用了多线程?
可以用IDE中的View CPU看看
 
通过"View CPU"能看出什么呢?

对了,好像有些操作不受影响的,回忆起来似乎主要是数据库操作的时候变慢了.

ODBC98+Access97
 
可以看出很多东西喔
如当前程序使用的线程个数和都在干什么
不知你“变慢”出在什么之后?
 
可是我看不懂... :-(

我现在都搞不请什么时候开始变慢,反正用着用着就慢了,而且似乎是数据库操作
的时候.
 
如果不重要,可以发给我看看,重要就算了
 
是一个商业程序.... :-(

你没遇到过类似情况吗?
 
可以改成用别的连接吗?
比如BDE
如果你用的一个TDataBase连接的话
改起来应该很快吧
 
可能的情况比较多了
1、严重的内存泄露
2、某次操作占用大量的CPU资源
3、线程中的不当处理
4、使用太多的线程或时钟控件
5、不当的数据库操作
...
 
1、严重的内存泄露
经检查没有泄漏.

2、某次操作占用大量的CPU资源
但是为什么再也不释放CPU了呢? 而且别的程序不受影响的

3、线程中的不当处理
没有使用线程

4、使用太多的线程或时钟控件
没有任何时钟控件

5、不当的数据库操作...
我几乎操作都是一样的,为什么到后来才变慢了呢?
 
关键是某个操作后变慢还是自己就变慢了?
是否使用了有大量索引的表?
-)我几乎操作都是一样的,为什么到后来才变慢了呢?
说明你的操作有一定的积累过程
指针没有释放?
 
后退
顶部