找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 415|回复: 3

[研讨] 几种求文字中点的效率比较

[复制链接]

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-6-4 16:55:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
下面6个函数均能准确求得text文字的中点,比较下效率如何:

(defun t1(e)
        (xdrx_points_centroid (xdrx_entity_box e))
)

(defun t2(e)
        (XD::Geom:Get9PT e 5)
)
(defun t3(e)
        (setq pts(xdrx_entity_box e))
        (xdrx_line_midp (car pts) (caddr pts))
)
(defun t4(e)
        (setq pts(xdrx_text_box e))
        (xdrx_line_midp (car pts) (caddr pts))
)

(defun t5(e)
        (setq pts(xdrx_text_box e))
        (list
                (* (+ (caar pts) (caaddr pts)) 0.5)
                (* (+ (cadar pts) (cadr (caddr pts))) 0.5)
                0.0
        )
)
(defun t6(e)
        (nth 4 (xdrx_getpropertyvalue e "9PT"))
)


(defun c:tt(/ e)
        (setq e (car(entsel)))
        (repeat 5
                  (xd::quickbench '(
                                        (t1 e)
                                        (t2 e)
                                        (t3 e)
                                        (t4 e)
                                        (t5 e)
                                        (t6 e)
                                )
                )
        )
        (princ)
)



命令: TT
选择对象:
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ........... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(T5 E)                            8192      1390       1390      3.06 <fastest>
(T4 E)                            8192      1750       1750      2.43
(T6 E)                            4096      1110       2220      1.92
(T3 E)                            4096      1391       2782      1.53
(T1 E)                            4096      1437       2874      1.48
(T2 E)                            2048      1063       4252      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ........... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(T5 E)                            8192      1375       1375      3.18 <fastest>
(T4 E)                            8192      1765       1765      2.48
(T6 E)                            4096      1125       2250      1.94
(T3 E)                            4096      1375       2750      1.59
(T1 E)                            4096      1406       2812      1.56
(T2 E)                            2048      1094       4376      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ........... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(T5 E)                            8192      1375       1375      3.14 <fastest>
(T4 E)                            8192      1750       1750      2.46
(T6 E)                            4096      1094       2188      1.97
(T1 E)                            4096      1422       2844      1.52
(T3 E)                            4096      1422       2844      1.52
(T2 E)                            2048      1078       4312      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ........... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(T5 E)                            8192      1406       1406      2.98 <fastest>
(T4 E)                            8192      1750       1750      2.39
(T6 E)                            4096      1109       2218      1.89
(T3 E)                            4096      1422       2844      1.47
(T1 E)                            4096      1438       2876      1.46
(T2 E)                            2048      1047       4188      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ........... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(T5 E)                            8192      1375       1375      3.09 <fastest>
(T4 E)                            8192      1765       1765      2.41
(T6 E)                            4096      1110       2220      1.91
(T3 E)                            4096      1391       2782      1.53
(T1 E)                            4096      1438       2876      1.48
(T2 E)                            2048      1062       4248      1.00 <slowest>
-------------------------------------------------------------------------------


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2020-6-4 18:17:02 | 显示全部楼层
纯LISP肯定效率最高,因为API是用ARX写的函数,函数调用过程需要和ARX通讯,有效率耗费
API的好处是可以利用C++,ARX操作底层,实现LISP不能实现的东西,另外函数让LISP程序更结构化

点评

再请教个问题,测试效率的函数xd::quickbench里面运行了多少次呀,测试效率时,如何测试函数里面有绘制图形的子函数时,绘制了4、5万次的图形呢。  详情 回复 发表于 2020-6-5 08:56

评分

参与人数 1D豆 +5 收起 理由
dyjwyqz5221 + 5 指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2020-6-5 08:56:18 | 显示全部楼层
XDSoft 发表于 2020-6-4 18:17
纯LISP肯定效率最高,因为API是用ARX写的函数,函数调用过程需要和ARX通讯,有效率耗费
API的好处是可以利 ...

再请教个问题,测试效率的函数xd::quickbench里面运行了多少次呀,测试效率时,如何测试函数里面有绘制图形的子函数时,绘制了4、5万次的图形呢。

点评

测试的也是比较相对的效率 (repeat 5 (xd::quickbench '( (t1 e) (t2 e)  详情 回复 发表于 2020-6-5 18:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-6-5 18:28:26 | 显示全部楼层
dyjwyqz5221 发表于 2020-6-5 08:56
再请教个问题,测试效率的函数xd::quickbench里面运行了多少次呀,测试效率时,如何测试函数里面有绘制图 ...

测试的也是比较相对的效率
(repeat 5
                  (xd::quickbench '(
                                        (t1 e)
                                        (t2 e)
                                        (t3 e)
                                        (t4 e)
                                        (t5 e)
                                        (t6 e)
                                )
                )
        )

循环次数,控制执行多少次
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-25 15:42 , Processed in 0.277402 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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