【发布时间】:2017-07-29 12:12:51
【问题描述】:
我有一个大型 c++ 项目 (g++/linux),其中包含大量代码生成,其中构建系统按深度 = 1 的目录名称将生成的代码分组到 .so 文件中
这在释放较小的块时会导致一些问题,因此我试图使其更细化,即深度=5,这将增加 .so 文件的数量(增加 5 倍,从 20 到 100)但是让我们能够在更细粒度的级别上进行更改和部署
在干净构建期间,当一切都是从头开始构建时,拥有许多小的 .so 文件是否会影响链接时间?
【问题讨论】:
-
你试过了吗?它可能会因项目而异。我觉得这个问题有点太笼统了。不过,如果我猜的话,我可能会想象它会更慢。
-
我现在正在尝试。粒度发布的好处超过了编译时间的增加,但代码已经花费了一个多小时才能完全构建在 40 核 64GB RAM 的机器上
-
dll粒度的标准应该是可执行文件之间的机器码共享。如果您正在为构建时间而苦苦挣扎,那么您应该检查代码的组织和构建时间。整个故事听起来就像您只是在使用编写不佳的代码生成器,它无缘无故地发出数千个翻译单元。
-
我正在检查代码组织,我将拆分 .so 文件。但是,我想知道其他人是否有做类似事情的经验