TC官方合作论坛

 找回密码
 立即注册
查看: 765|回复: 15
打印 上一主题 下一主题

[问题] 发现TC5.5性能上的致命BUG

[复制链接]
跳转到指定楼层
楼主
发表于 2015-12-11 12:06:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本来用的是按键精灵,受困于性能不足和多线程限制,开始尝试TC。动手之前,按惯例测试一下性能。
所有人都提到说TC性能强悍,本来觉得这不会是什么问题,但枭龙801上的结果让我大出所料。

1M次循环循环内语句TC耗时按键耗时
加法118922192
乘加120289242
乘加235162471


慢了足足100倍!!!
一开始我以为是调试模式的效率差,但是安装后运行还是这个数据,实在是忍无可忍。
请开发人员出来解释一下,这到底是系统bug,还是设计规范。如果是后者,恐怕TC会让很多人望而却步了。



TC5.5代码如下,整数只支持31位。
  • function start_click()
  •     var I, TM, ABC, BCD
  •     ABC=0
  •     BCD=0
  •     TM=gettickcount()
  •     for(I=0; I<=1000000; I++)
  •         ABC=ABC*(I+1)
  •         BCD=BCD+I*I
  •     end
  •     TM=gettickcount()-TM
  •     messagebox(TM)
  • end

[color=rgb(51, 102, 153) !important]复制代码


按键3.0代码如下,无符号整数支持32位。
  • dim ABC,BCD,tm1,i
  • ABC=0
  • BCD=0
  • for i=1 to 1000000
  •     ABC=ABC*(i+1)
  •     BCD=BCD+i*i
  • next
  • tm1=TickCount()
  • delay 5000
  • showmessage(tm1)
  • delay 5000

[color=rgb(51, 102, 153) !important]复制代码



回复

使用道具 举报

16#
发表于 2015-12-13 19:55:14 | 只看该作者
OOOO 发表于 2015-12-13 19:33
安卓也好 windows也罢 看第二页回复

真以为TC很快么
会用按键精灵的人可以让这段代码在按键精灵里也达到这个速度。知道按键精灵对脚本的预处理机制,就会在想要效率的时候加上vbsbegin......vbsend

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

15#
发表于 2015-12-13 19:33:12 | 只看该作者
mjg2009 发表于 2015-12-13 19:19
楼主的代码明显是安桌的。你用WIN来试?   按键PC版没有gettickcount(这是WINAPI)和showmessage ...

安卓也好 windows也罢 看第二页回复
回复 支持 反对

使用道具 举报

14#
发表于 2015-12-13 19:19:39 | 只看该作者
OOOO 发表于 2015-12-11 22:29
我想说的全在图上了

楼主的代码明显是安桌的。你用WIN来试?   按键PC版没有gettickcount(这是WINAPI)和showmessage
回复 支持 反对

使用道具 举报

13#
发表于 2015-12-13 17:09:23 | 只看该作者
晴天滚雷 发表于 2015-12-12 18:05
多谢你复测了我的程序。
不过我用的是安卓版,所以我用的按键精灵是3.0版本,所以你的TickCount函数遇到 ...

顺便也证实了在windows坏境下按键远远不如TC, 正如图片上我说的,这些测试说明不了什么,仅仅一个循环而已,也许是TC内部加了一点点延迟,这个测试不是全面的,也不是有效的,所以该测试无意义
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2015-12-12 18:05:31 | 只看该作者
OOOO 发表于 2015-12-11 22:29
我想说的全在图上了

多谢你复测了我的程序。
不过我用的是安卓版,所以我用的按键精灵是3.0版本,所以你的TickCount函数遇到问题导致按键精灵无法执行。
回复 支持 反对

使用道具 举报

11#
发表于 2015-12-12 12:24:57 | 只看该作者
不考虑编译器在编译已经帮你算出结果的情况下
c  大概 8~10毫秒左右
asm 大概3~5毫秒左右 (或者基本可以忽略不计)

你可以考虑转这两个 ..
回复 支持 反对

使用道具 举报

10#
发表于 2015-12-11 22:29:56 | 只看该作者
我想说的全在图上了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

9#
发表于 2015-12-11 22:17:33 | 只看该作者
楼主可以去吃点什么了,我用TC5.5测试是 8000多毫秒,毕竟你循环了一百万次,而按键直接卡了半天没反应,最后出个什么不匹配,你说的按键3.0?你没毛病吧?浪费我这么多时间证实这么低级的污蔑!
回复 支持 反对

使用道具 举报

8#
发表于 2015-12-11 22:17:32 | 只看该作者
楼主可以去吃点什么了,我用TC5.5测试是 8000多毫秒,毕竟你循环了一百万次,而按键直接卡了半天没反应,最后出个什么不匹配,你说的按键3.0?你没毛病吧?浪费我这么多时间证实这么低级的污蔑!
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-18 22:07 , Processed in 0.134342 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表