gzcsun 发表于 2024-6-26 13:42:50

本帖最后由 gzcsun 于 2024-6-26 13:48 编辑

(defun c:gg4(/ enlst etime ss stime)
      (setq ss(ssget))
(setq stime(getvar "MILLISECS"))
(setqenlst (vl-remove-if-not '(lambda (arg) (equal (type arg) 'ENAME)) (mapcar 'cadr (ssnamex SS))))
      (setq etime(getvar "MILLISECS"))
(princ(strcat "\n处理完毕!耗时:"(rtos(- etime stime)2 0)" ms"))
(princ))


命令: GG1
找到 843180 个
处理完毕!耗时:1469 ms

命令: GG2
找到 843180 个
处理完毕!耗时:1187 ms

命令: GG3
找到 843180 个

处理完毕!耗时:297 ms

命令: GG4
找到 843180 个
处理完毕!耗时:1640 ms
耗时最慢!



外国很多用 ssnamex 。
但 ssnamex 是最慢的。


aws 发表于 2024-6-26 13:56:14

gzcsun 发表于 2024-6-26 13:42
(defun c:gg4(/ enlst etime ss stime)
      (setq ss(ssget))
(setq stime(getvar "MILLISECS"))


84万个图元,297毫秒处理完毕,你这啥处理器啊,不可思议啊

masterlong 发表于 2024-6-26 14:22:00

(repeat(setq n(sslength ss))
(setq enlst(cons (ssname ss(setq n(1- n))) enlst))
)
我感觉这样应该会更快一点

小菜123 发表于 2024-6-26 14:49:35

编译以后新开一个CAD测试,得出结论才准确

aws 发表于 2024-6-26 16:24:47

小菜123 发表于 2024-6-26 14:49
编译以后新开一个CAD测试,得出结论才准确

有道理呀,我都是飞诗里面测试的,我记得编译后,速度确实可以提高很多。

小菜123 发表于 2024-6-26 16:52:11

我的函数也是用的第3种方法,如果结论不一致,请发出来

fangmin723 发表于 2024-6-26 17:27:50

那你用我的那个test编译测试看看

aws 发表于 2024-6-26 17:35:49

fangmin723 发表于 2024-6-26 17:27
那你用我的那个test编译测试看看

确实是while比repeat快
---取3次测试结果,十万个圆:
GG1处理:耗时:297 ms;耗时:281 ms;耗时:235 ms;
GG2处理:耗时:281 ms;耗时:266 ms;耗时:250 ms;
GG3处理:耗时:47 ms;耗时:63 ms;耗时:78 ms;
GG4处理:耗时:31 ms;耗时:47 ms;耗时:31 ms;
GG5处理:耗时:313 ms;耗时:313 ms;耗时:281 ms;

---取3次测试结果,百万个圆:
GG1处理:耗时:3484 ms;耗时:4047 ms;耗时:2688 ms;
GG2处理:耗时:4266 ms;耗时:4141 ms;耗时:2703 ms;
GG3处理:耗时:719 ms;耗时:516 ms;耗时:609 ms;
GG4处理:耗时:375 ms;耗时:375 ms;耗时:391 ms;
GG5处理:耗时:4031 ms;耗时:3094 ms;耗时:4485 ms;

fangmin723 发表于 2024-6-26 18:27:37

aws 发表于 2024-6-26 17:35
确实是while比repeat快
---取3次测试结果,十万个圆:
GG1处理:耗时:297 ms;耗时:281 ms;耗时:235 ...

`中微子 发表于 2024-6-27 00:34:20

我也来测试一下.
10万个圆,CAD2024,CPU12700K,32GDDR5,A2000显卡.

---取3次测试结果,十万个圆:
GG1处理:耗时:188 ms;耗时:187 ms;耗时:156 ms;
GG2处理:耗时:172 ms;耗时:172 ms;耗时:156 ms;
GG3处理:耗时:16 ms;耗时:110 ms;耗时:46 ms;
GG4处理:耗时:16 ms;耗时:31 ms;耗时:31 ms;
GG5处理:耗时:203 ms;耗时:188 ms;耗时:204 ms;
命令:
页: 1 [2] 3
查看完整版本: 选择集转图元名表,还有没有更简洁的写法?