找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 601|回复: 1

[必看]:VisualLISP和LISP谁的性能更好?

[复制链接]

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2004-2-26 15:04:24 | 显示全部楼层 |阅读模式

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

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

×
在AUTOCAD 2002的SAMPLE\VISUALLISP\ACTIVEX下有两个程序AL-TST.LSP,VLA-TST.LSP作为AUTOLISP和VISUALLISP的性能对比,显示VISUALLISP的优越性,我对AL-TST.LSP中的子函数aal-tst做了如下修改:

  1.   [FONT=courier new]
  2. (defun aal-tst (/ ent centerPoint nPoint i ind offs ss cnt lwh2 lwh pt1
  3.                 pt2 pt3 pt4)

  4. (setq offs (car (getvar "snapunit")))

  5. (setq lwh2 (/ (setq lwh 5.0) 2.0))

  6. (princ "Creating 2000 PolyLines.\n")
  7.   (setq i 0)
  8.   (while (< i 2000)
  9.     ;; creates an LWPolyLine in model space
  10.     (setq pt1 (list (* -1.0 lwh2) (* -1.0 lwh2)))
  11.     (setq pt2  (list lwh2 (* -1.0 lwh2)))
  12.     (setq pt3  (list lwh2 lwh2))
  13.     (setq pt4  (list (* -1.0 lwh2) lwh2))
  14.     (setq entm (entmake
  15.                  (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(8 . "0") '(100 . "AcDbPolyline")
  16.                        '(38 . 0.0) '(39 . 0.0) '(90 . 4) '(70 . 1)
  17.                         (cons 10 pt1) (cons 10 pt2) (cons 10 pt3) (cons 10 pt4)
  18.                  ))
  19.     )
  20.     (entupd (entlast))
  21. ;    (command "PLINE" pt1 pt2 pt3 pt4 "C")
  22.     (setq lwh2 (/ (setq lwh (+ lwh offs)) 2.0))

  23.     (setq i (1+ i))
  24.   )
  25.   (REDRAW)
  26.   (setq cnt (SSLENGTH (setq ss (ssget "_X"))))
  27. ;; Changes the Color

  28.   (princ "Changing 2000 LWPolylines to Red Color.\n")
  29.   (command "_.change" ss "" "P" "C" "1" "")
  30. ;;  (change-property-s ss 62 1)
  31.   (REDRAW)
  32. ;; Sets to Invisible  - Cannot be Done Via AutoLisp
  33. ;;  (change-property-s ss 60 acFalse)
  34.   (REDRAW)
  35.   (princ "Erasing 2000 LWPolylines.\n")
  36.   (COMMAND "ERASE" SS "")
  37. ;  (setq i (1- (SSLENGTH ss)))
  38. ;  (while (>= i 0)
  39. ;    (setq ent (ssname ss i);
  40. ;          i   (1- i)
  41. ;    )
  42. ;    (COMMAND "ERASE" ent "")
  43. ;  )
  44.   (setq ss nil)
  45. )

  46. [/FONT]

性能有了极大的提高,运行时间不到不到原来的1/10,大家对比一下带分号和不带分号的代码就知道了,不知道AUTODESK这种自欺欺人的做法是什么意思?在我看来AUTOLISP的性能要好过VISUALLISP和VBA,略差于ARX,却是最简单易用Q
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 22:38 , Processed in 0.168765 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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