明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2410|回复: 10

[讨论]setvar占用时间是不是比较长

[复制链接]
发表于 2009-6-15 22:05:00 | 显示全部楼层 |阅读模式

我发现一个比较怪的现象,当关捕捉时,用(setvar "osmode" 0)比直接用(command"osnap" "off")占用的时间好像要长,大家可以用下面的程序比较一下


命令:
命令: t1
程序启动完成,共用时0微秒.

命令:  T1
程序启动完成,共用时0微秒.

命令:  T1
程序启动完成,共用时0微秒.

命令: t2
程序启动完成,共用时372736微秒.

命令:
命令:  T2
程序启动完成,共用时12288微秒.


(defun c:t1(/ tim)
  (setq tim (* 1000000000000 (getvar "cdate")))
  (command"osnap" "off")

  (princ "\n程序启动完成,共用时")
  (princ (fix (- (* 1000000000000 (getvar "cdate")) tim)))
  (princ"微秒.")
  (princ)
)

(defun c:t2(/ tim)
  (setq tim (* 1000000000000 (getvar "cdate")))
  (setvar "osmode" 0)

  (princ "\n程序启动完成,共用时")
  (princ (fix (- (* 1000000000000 (getvar "cdate")) tim)))
  (princ"微秒.")
  (princ)
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-6-15 22:48:00 | 显示全部楼层

先不说测试结果是不是正确!

测试函数运行时间一般要循环上万次的!

你乍测试函数执行一次的时间?

 楼主| 发表于 2009-6-17 10:25:00 | 显示全部楼层

命令: t1
程序启动完成,共用时1436毫秒.

命令: t2
程序启动完成,共用时22140毫秒.

这是程序执行5000次的结果,22140/1436=15.4,送别是很大的。


(defun c:t1(/ tim)
  (setq tim (* 1000000000 (getvar "cdate")))
  (repeat 5000
  (command"osnap" "off")
)
  (princ "\n程序启动完成,共用时")
  (princ (fix (- (* 1000000000 (getvar "cdate")) tim)))
  (princ"毫秒.")
  (princ)
)

(defun c:t2(/ tim)
  (setq tim (* 1000000000 (getvar "cdate")))
  (repeat 5000
  (setvar "osmode" 0)
)
  (princ "\n程序启动完成,共用时")
  (princ (fix (- (* 1000000000 (getvar "cdate")) tim)))
  (princ"毫秒.")
  (princ)
)

 
只是想讨论一下,为什么会有差别,是不是我们能用COMMAND的,就最好不要用SETVAR?

发表于 2009-6-17 11:39:00 | 显示全部楼层

连续执行时有不同的结果:(1楼程序)

命令: t1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时20480微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时16384微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时16384微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时16384微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时16384微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时16384微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时20480微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时16384微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令:  T1 osnap 输入对象捕捉模式列表: off
命令:
程序启动完成,共用时0微秒.
命令: t2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时20480微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时16384微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时12288微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时16384微秒.
命令:
命令:  T2
程序启动完成,共用时12288微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时12288微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.
命令:
命令:  T2
程序启动完成,共用时0微秒.

发表于 2009-6-17 20:14:00 | 显示全部楼层
这不定准确吧,要多测几次看.
发表于 2009-6-18 08:46:00 | 显示全部楼层
不具可比性。

发表于 2009-6-18 11:30:00 | 显示全部楼层
差别在一个(setvar "OSMODE" 0)有返回值,一个(command "OSNAP" "OFF")无返回值。
返回值是要时间的。
 楼主| 发表于 2009-6-18 15:54:00 | 显示全部楼层

明白了。

不知道是不是电脑的原因,我仅仅只用了一句(setvar"osmode" 0),在运行的时候,我就能感觉到程序有点滞后,而用(command .....)就基本感觉不出来。

发表于 2009-6-20 10:26:00 | 显示全部楼层

挺一下7楼

另外,并非用command就一定慢的,cad的命令都是编译过的(应该是C++),整数运算是很快的,浮点运算才慢,有时候修改实体,......

发表于 2009-6-20 10:49:00 | 显示全部楼层

正常情况下

一个程序改不了几个变量

楼主既然是测试也应该加入 VLA-SetVariable

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-1 05:29 , Processed in 0.196742 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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