乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: paulmcz

[编程交流] 协会62

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 07:46:21 | 显示全部楼层
 
很高兴你收到了。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:49:09 | 显示全部楼层
 
不客气,保罗,如果您对我的代码示例还有任何疑问,请提问。
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 07:52:41 | 显示全部楼层
嗯,我确实有个问题,李。在这里,我使用1+计数器来逐步通过ssget集,您使用1-计数器。有什么特别的原因吗?他们看起来都很好。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 07:56:09 | 显示全部楼层
只有一个原因:因为李的代码是如何使用选择集的。
 
他正努力做到尽可能优雅高效。注意,他的选择集处理不需要progn,它不使用单独的setq来获得计数器=0并每次检查长度。相反,他使用重复循环,只检查一次长度,同时将计数器设置为选择集上的长度。然后,他所需要做的就是在使用计数器之前减少计数器-从而从选择集中的最后一个项目步进到第一个项目。
 
到目前为止,这是我见过的使用选择集最有效的方法,除非您使用ActiveX选择集。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:58:55 | 显示全部楼层
很好的解释,伊恩,谢谢你
 
这也可能对选择集处理的主题有所帮助:
http://www.cadtutor.net/forum/showthread.php?72186-循环While&p=493190&viewfull=1#post493190
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 08:03:47 | 显示全部楼层
好东西,伙计们,谢谢。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:04:41 | 显示全部楼层
高兴很容易赞美你的编码
 
无论如何,我希望foreach可以直接用于SS。与通用lisp中的for循环相同,它可以用于所有序列(包括数组、字典、字符串、列表等)。这将使代码能够在多线程环境中使用,从而允许在不干扰顺序/序列的情况下运行每个迭代,从而不仅可以实现更优雅的代码,而且可以极大地提高性能。
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 08:09:14 | 显示全部楼层
我不知道你在这里说什么Irne。你能举个例子解释一下吗?谢谢
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:13:29 | 显示全部楼层
我的意思是我希望能够以这种方式使用选择集:
这样,代码可以按任何顺序运行,系统(lisp解释器)可以允许多核CPU同时运行多个迭代。E、 g.通过4核CPU同时执行第一、第二、第三和第四项与只运行一次迭代几乎需要相同的时间。因此,上述代码在4核上的运行速度可能要快3-4倍。
 
CL中的另一个不是AutoLisp的东西是“自动”闭包。这进一步有助于实现多线程。假设上面有如下内容:
注意这会破坏多线程?因为您现在使用的变量可以从其他线程中更改。而使用CL let语句,您可以将这些变量包含在foreach循环中,从而使它们独立于每次迭代。
 
就像现在的ALisp一样,即使可以添加这样的多线程,确保闭包的唯一方法就是限制自己只在foreach循环内使用函数编程。
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 08:15:08 | 显示全部楼层
好的,那得过一会儿再说。现在,我必须确保append和类似函数不会给我带来像这个线程中那样的问题。谢谢
 
你如何衡量性能或速度?我首先在2000多条多段线的图形上使用命令“change”运行此例程。太慢了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 10:22 , Processed in 0.352320 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表