我一直在研究在Visual C ++ 2013中使用Profile Guided Optimisation。我很高兴使用不同的场景作为手动步骤执行训练集,但希望最终优化的构建和链接能够工作我们的CI构建服务器。
考虑到这一点,我在哪里存储PGO配置文件数据库的最佳位置?将它们存储到版本控制(在我们的例子中为Git)是最方便的地方,但我知道它们是十几,甚至几百兆字节的二进制文件,这些不一定是存储的很好地在源控制系统中。
或者,是否有更好的解决方案或最佳实践将PGO集成到我们的自动构建中?
答案 0 :(得分:0)
你在这里有多个选择,你可以考虑权衡来选择其中一个。
通过你的答案,你可以为自己创造一条路线。
如果您不经常刷新PGO数据库,并且二进制大小不会破坏您的项目,您可以将它们存储在版本控制中。
如果为每次提交重新生成它们,您可以将它们放在一个单独的存储库中,其中包含实际代码库提交ID(在其上创建提交PGO配置文件数据库)作为提交消息
或者,如果您不经常生成它们,并且当您返回到特定提交时,可以重新生成您可能无法存储它们的数据库,只需将其放入CI构建计算机。
或者你可以围绕这些意见制作另一种组合:)
答案 1 :(得分:0)
我们的解决方案是使用Git LFS存储PGO文件(另请参阅this question)。
这种方法的优点:
这种方法唯一不太明显影响我们的是,所有机器和软件都必须支持和安装Git LFS,从开发工作站到CI服务器。