这个不晓得是设计本就如此,还是某个‘bug’。
情况是这样的,如下图,我反复测试了十几次。发现:
运行同样的任务,
如果我把‘提示消息’这个模块停用掉,然后运行,需要大概40几秒完成。
如果我把‘提示消息’这个模块取消用掉(让他运行),然后运行,需要大概16秒完成。
是本就设计如此么?‘提示消息’这个模块停用掉之后反而拖慢了整个程序的速度?
如果我把‘提示消息’这个模块取消停用(让他运行),然后运行,需要大概16秒完成。
很诡异诶
我刚刚又测试了一下,我把‘提示消息’这个模块删掉,然后运行,整个过程需要40几秒。
我再把‘提示消息’这个模块加回去,然后运行,整个过程需要16秒。
减少一个‘提示消息’模块,反而增加20几秒的耗时。为啥啊
不确定什么情况的时候,右键调试运行,看看每个步骤的时间
这是停用的时候的运行日志
这是取消停用‘提示消息’的时候的运行日志。看到了结果,看不出原因。
从头开始找,看看从哪个步骤开始的
shanle
我已经从头找过了。结论是:整体的耗时,比较均匀地,在各次循环中,产生了差异。
换句话说,只要是保留了‘提示消息’模块的运行的,那么,在这个模块之外的模块的运行过程中(他们被循环运行),统一地都比较快。
这个很诡异。我是不能理解它的。对我来说,我之所以重视,有一大半是好奇,一小半是因为对我后续的使用有影响。
同时,个人希望大神能重视和解决他。从我目前反复测试来看,只能理解为是程序本身某处存在问题。这个问题,导致程序在运行中出现本部必要的耗时,而且这个耗时很大,占比超过总耗时的一半以上。
我也不能理解😂 看看两次运行CPU、内存占用情况。 如果内容不涉及隐私信息,可以点调试文件里的上传,得到网址后把网址发我qq 邮箱197906
这个链接里,有一个录屏。是我刚刚做了4次调试运行的过程的录屏。在录屏里能够看到,仅仅是关闭或打开了消息提示,而不作任何其他修改,就重现了前面提到的问题。且做了反复测试,结果相同。
随同录屏,附上了其中3次的运行日志,以及qka文件,以及过程中用到的xlsx文档。
盼重视和解决
所有数据已发QQ邮箱
不会是CPU之类的硬件问题,前后测试了大概20次了,都是统一的结果。
用过两台电脑测试,结果相同
会不会是因为显示提示的时候因为需要更高性能,所以CPU频率加速比较多? 感觉有点走近科学的意思了。
另外动作要分享或动作右键导出一下,导出步骤的话因为有共享子程序我这里使用不了。
另外可以试试循环间隔时间改成0. 这个时间是不准的,windows定时器不是实时的,有可能1-15ms之间。
已共享https://getquicker.net/Sharedaction?code=67c245a1-d5cb-472c-6acd-08db4c6b3ac9
同时json文件已发到QQ邮箱
应该不是硬件原因。我的两台电脑,一台是笔记本,一台是台式机。一台是因特尔处理器,一台是AMD处理器,运行耗时结果几乎相同,持续且稳定。
试了把循环间隔改成0。
结果没变化
改成0测试了么?所有循环步骤里的循环间隔,我感觉会有不同的结果
子程序里也要改0. 运行时间一共1秒多。
我的问题解决了,感谢~(我在子程序里,也改了0。之后,不论是不是运行消息提示,都只需要0.9秒左右完成整个动作)
还需要问一下:这里改成0之后,由于循环内没有其他‘等待时间’的步骤,会导致运行出错不?
看来,之前,循环内的1ms的延时与循环外的“消息提示”,二者之间应该是存在某种影响,导致了异常。
顺序执行不会导致出错。循环间隔一般用在持续循环的情况,很快运行结束的,不涉及界面的通常不需要。
明白了,感谢
所以延时和消息提示之间是什么影响?
提示消息的显示,影响了windows中Sleep(1)的表现,造成了延迟时间更大一些。 将延迟去掉之后就正常了。
想起来个与问题无关的小建议: 提示消息模块可否加一个显示时间的参数, 因为有时候要显示的内容挺多, 默认时间内大概率阅读不完
这个要堆叠显示,没法控制时间。 可以找一下子程序,比如这个:https://getquicker.net/SubProgram?id=a953ee39-05b1-440e-a7b5-08d97fc56787