有人要求我解决在VisualC++上编写的一个在将绘图导出到PDF3D时发生的CAD应用程序的内存使用问题。
导出特性对于简单模型或仅用于复杂模型的部分具有良好的性能,但对于整个复杂模型则不适用。
我们正在使用U3D sourceforge项目来创建U3D对象;在我们将它插入到PDF之后。有问题的是创建部分的对象。
U3D sourceforge项目是一个构建在C++中供C++使用的库,它自2007年就死了,文档很差,而且它的样本收集还远远不够!在TODO的项目列表中也说明了它有内存问题!
因此,双方要求我解决这一问题:
他们还说,一方更可取,因为它在我们的控制之下。
当我试图解决这个问题时,我得出了两个结论:
所以问题是:继续使用这个库值得吗?它的密码不是joy读的。或者也许为了同样的目的去看其他的笔友也是个好主意?我没有探索它们,但我正在认真地考虑切换到VCGlib或libharu.如果你知道这是件好事的话,请提出别的建议。
其他的选择是:使用Visual PDF3D出口商,它有不可接受的成本,或者开发我自己的U3D导出程序,它会有一个非常有限的U3D功能集的缺点,而且它也无法为预期的截止日期做好准备。所以把这些选择当作是禁止的。
我真的需要帮助来决定什么是最好的。
预先谢谢你,塞尔吉奥
发布于 2011-02-26 17:46:31
在经历了一些绝望和睡眠不好的夜晚,试图发现内存泄漏或其他一些记忆问题之后,我们得出了最实际的解决方案:
只提取加载文件所需的代码部分,并将其作为U3D导出到一个小程序中,并使主要的CAD应用程序调用它。尽管它不是最优雅的解决方案,但它确实工作得很好--没有一个进程达到内存使用量,甚至接近2GB的屏障。
我希望我能早点被授权以这样的方式解决问题。我还提出了其他一些建议,比如:
版本支持将每个进程的内存限制扩展到2GB以上的
这两种解决方案都是不可接受的,因为它需要迫使一些客户重新安装已经在运行的硬件或软件。
发布于 2011-02-16 16:39:37
一些注释: VCGlib -不相关,MeshLab依赖VCGlib作为核心函数,但是对于U3D导出命令行工具来说,从文本格式转换为U3D是使用的,该工具来自sf U3D库。libharu -可以将3D模型嵌入到它的PDF输出中,而不是创建模型(U3D或中华人民共和国文件)。
另一种选择是淘汰其他Adobe3D PDF格式。Acrobat具有伪码形式的格式描述。在此基础上,用渐近工具实现了中华人民共和国的输出。在sourceforge上找到它,如果您有兴趣的话,可以在Asymptote论坛上提问。
https://stackoverflow.com/questions/4676303
复制相似问题