- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OPEN CASCADE 学习笔记
——为什么布尔操作如此之慢
著: Roman Lygin
译:George Feng
这 是 一 篇 关 于 开 源 三 维 建 模 软 件 O P E N C A S C A D E 内 核 的 博 文 :
R O M A N L Y G I N 是 O P E N C A S C A D E 的 前 程 序 开 发 员 和 项 目 经 理 ,
曾 经 写 过 许 多 关 于 该 开 源 软 件 开 发 包 的 深 入 文 章 ,可 以 在 他 的 博
客 ( H T T P : / / O P E N C A S C A D E . B L O G S P O T . C O M ) 上 面 找 到 这 些 文 章 。
序
在OpenCascade 的论坛上知道了Roman Lygin 在他的博客上写了
Open CASCADE notes 系列文章,但是却无法访问他的博客,幸
而百度文库已经收录了Topology and Geometry 和Surface
Modeling 两篇文章,拜读之后获益良多。如果大家发现文中翻译有错
误或不足之处,望不吝赐教,可以发到我的邮箱
fenghongkui@ ,十分感谢。
2012 年10 月18 日星期四
第1 节 问题初探
经常有人提到Open CASCADE 的布尔操作(Boolean Operations, BOPs) 非常
的慢。是否有人知道这是为什么呢?
你 可 能 还 记 得 , 我 在 另 一 个 帖 子
(/2008/11/open-cascade-inside-intel-or-int
el.html) 中提到,在Intel 工作的时候,我们决定将Open CASCADE 集成到我们
的测试数据库的应用程序中。我做了几个例子,用来测试Intel Parallel Amplifier
and Inspector (Intel 并行开发工作室(Parallel Studio Intel)新添加的部分应用程
序) 。
除了我最近导入IGES 的这个测试例子( 已经实现了多线程模式导入IGES 文件的
原型系统) ,这次我还测试了布尔操作(BRepAlgoAPI) 。在论坛上
(/org/forum/thread_14933/)我要过几个模型,但
令人惊奇的是回应的人并不多。不管怎么说,还是要谢谢Evgeny L, Prasad G,
Pawel K, Igor F,他们给我提供了模型。
下面说正经的。在比较复杂的模型中,所有案例中速度提高了从 4x(模型中有
100+个面)倍速到20x(几十个面)倍速都有。所有案例中使用的CPU 时间都减少
了,有从80 秒到20 秒的,也有30 秒到1.4 秒的。(声明:这篇文章在上周完
成初稿之后,我又测试了一组由Pawel Kowalski 提供的模型。经过测试发现了
其他瓶颈,这将在后面讲到,因此先前做的提高性能的方法对它们无效。假如时
间允许的话,我将会继续实验并将新的发现写出来。
*正式开始*
让我们按照下面的步骤做:
我主要关注BopTools_DSFiller 类,它是布尔操作(Boolean Operations , BOP)
的重要部分,它提供相交后模型,以便于之后根据相交结果进行并(fuse) 、交
(common)、差(cut)等操作,并重构这些操作结果。
在第一个例子中,使用了我在OCC 时候的同事提供的两个模型,他也参与了Intel
并行工作室beta 版程序(Intel Parallel Studio beta program)的开发。两个模型
都有130+的面,BopTools_DSFiller::Perform()花了67 秒的CPU 时间。
我安装了最新版的Intel 并行放大器(Intel Parallel Amplifier)(备注:公开的Beta
版在1 月初就有了,你可以现在在这个网站定购– /go/parallel) 。
唯一使用到的分析类型是“热点分析”(Hotspot Analysis),它可以确定使用最
多 CPU 时间的函数
文档评论(0)