高手们帮忙,COM中某接口使用时,速度慢,影响用户操作,如何解决(内详)??? ( 积分: 80 )

  • 主题发起人 主题发起人 redcoffee
  • 开始时间 开始时间
R

redcoffee

Unregistered / Unconfirmed
GUEST, unregistred user!
我调用的是一本机进程外COM,单一接口调用时,这个接口会占用一定的时间http://www.delphibbs.com/delphibbs/dispq.asp?lid=3177795
调试程序时跟到这个函数执行时,会出现明显的停顿现象,就是他执行会占用一定的时间,这时CPU占用率会骤然上升,导致在用户使用中,到这里鼠标会有停顿的现象,若此时用户正在移动鼠标,鼠标便会出现跳跃。
各们哥哥,姐姐帮帮忙,看看是不是有可行的解决方法,把COM内部写成异步是不是可以避免用户操作的影响(异步是不是影响接口的实现速度呢???),
顺便帮我看看那篇帖子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3177795

真是跪求了
 
我调用的是一本机进程外COM,单一接口调用时,这个接口会占用一定的时间http://www.delphibbs.com/delphibbs/dispq.asp?lid=3177795
调试程序时跟到这个函数执行时,会出现明显的停顿现象,就是他执行会占用一定的时间,这时CPU占用率会骤然上升,导致在用户使用中,到这里鼠标会有停顿的现象,若此时用户正在移动鼠标,鼠标便会出现跳跃。
各们哥哥,姐姐帮帮忙,看看是不是有可行的解决方法,把COM内部写成异步是不是可以避免用户操作的影响(异步是不是影响接口的实现速度呢???),
顺便帮我看看那篇帖子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3177795

真是跪求了
 
我已经翻了好几本相关的书,不得其中要领,请各位达人帮忙,小弟真心感谢。
 
谁了解,帮帮我。谢谢谢谢谢谢
 
高手们快进呀
 
创建com对象的时间代价就是高许多
把com方法的实现部分全部注释掉,再调用方法,这时所花的时间就是必要时间
如果这样的情况下,你仍然无法忍受,那么,办法只有升级机器或不要采用这种技术。
如果显著改善性能,那么,就是你那个com方法实现代码不良的问题,把这段
代码拷贝到exe本地中执行,照样很糟糕
 
to 张鸿林
谢谢谢谢,如果COM异步的话,应该可以解决用户使用时所表现出来的鼠标停顿问题,但是COM异是不是一定会影响COM中操作的实现速度呢,比如COM中是控制硬件的函数。请指教
 
我的意思是说COM异步是不是可以解决用户使用中程序所表现出来的停顿问题呢?
 
停顿问题应该是cpu使用率太高造成,我认为这种问题不管是使用线程或异步都无法解决
调低优先级应该是办法之一。
但最好的办法应该是修改程序的实现。
如以下代码绝对造成cpu占用过大:
repeat
//do some thing
application.processmessage;
untile some condition
简单这样改一下,就好多了:
repeat
//do some thing
application.processmessage;
sleep(10);
untile some condition
 
谢谢这么晚还在线指导,com中的循环怎么会占用这么多的CPU呢。这个问题说到这地步基本上差不多了,我现在正在搞COM这一块,希望能得到帮助,呵呵,不算贪心吧。能得到你的直接请教的方式吗?比如QQ,E-mail...感谢
我的邮箱sum_com@tom.com
 
谢谢谢谢,正在努力研究中
 

Similar threads

后退
顶部