减少 Boost Python 编译时间
Posted
技术标签:
【中文标题】减少 Boost Python 编译时间【英文标题】:Reducing Boost Python Compilation Time 【发布时间】:2015-07-09 08:24:13 【问题描述】:我有一个非常大规模的接口,我通过 boost-python 公开,大约有 100 个对象,每个对象大约有 30 个函数。
另外还有枚举定义(平均每个类大约 1 个) 每个类大约有 5 个子类,每个子类大约有 5 个函数。
这看起来确实有很多代码。 (在展开 boost 宏之前,该文件大约有 9K 行代码)
因此在单个 CPU 上编译/链接大约需要 3-4 分钟。有没有一种合理的方法来提高编译时间,例如一个数量级?
在 boost-python 中我不应该做哪些会影响编译时间的事情?
我想到的一个解决方案是将 API 分布在多个文件中,但这并没有真正的帮助,因为其他东西已经与我的 API 并行编译,所以总的来说这不会减少总编译时间,甚至会增加它。 (我的 API 库不会阻碍其他进程)
【问题讨论】:
【参考方案1】:我会尝试分发多个文件。
您将减少可能导致速度变慢的内存消耗,而且下次构建时您将仅编译修改后的文件,从而显着减少开发期间的编译时间。
详情here。
【讨论】:
谢谢,但这无济于事 - 这是针对始终运行的连续构建,并从头开始构建整个产品。内存消耗也不是问题,构建机器有大量内存。 这应该是公认的答案!它确实通过并行编译每个 cpp 文件来减少编译时间!以上是关于减少 Boost Python 编译时间的主要内容,如果未能解决你的问题,请参考以下文章
使用boost python编译在python代码内部调用的c ++代码时出错
无法在 Boost.Python 中使用 __stdcall 编译示例