提供了三种方式(Alisp,Vlisp,ActiveX),并比较了下替换效率,供你参考
三个函数定义在附件中
 - (defun c:tt()
- (gc)
- ;;加入了一些YYYY干扰项做测试
- (setq str
- "2.00~8.50mYYYYYYY块石土:灰褐色、淡黄色,松散,YYYY稍湿~湿,块石成分以中风化砂岩块石为主,呈棱角状,粒径组成:20~200mm约占15%,>200mm约占68%,其余为粉质粘土充填,粉质粘土呈可塑状,土质不均匀。8.50~9.20mYYYYYYY含碎石粉质粘土:灰褐色、灰黄色,可YYYY塑状,稍湿,具粘性,手可搓成条,干强度、韧性中等,摇震无反应。含碎、砾石约33%,粒径为35~60mm,多为砂岩,碎、砾石有一定磨圆度,呈次棱角状,土质较均匀。"
- )
- ;;strreplace (Alisp)
- ;;STRING-SUBST-ALL (Vlisp)
- ;;xxexpr (ActiveX)
- (benchmark '((strreplace "\n" "YYYYYYY" str) (STRING-SUBST-ALL "\n" "YYYYYYY" str) (xxexpr "Y{7}" str "\n" "")))
- )
Elapsed milliseconds / relative speed for 65536 iteration(s):
(STRING-SUBST-ALL "\n" "YYYYYYY" STR)......1919 / 51.41 <fastest>
(XXEXPR "Y{7}" STR "\n" "")...............11014 / 8.96
(STRREPLACE "\n" "YYYYYYY" STR)...........98655 / 1 <slowest>
|