gpt4 book ai didi

c++ - 如何衡量 pimpl 候选人?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:47:15 35 4
gpt4 key购买 nike

pimpl(也称为:编译器防火墙)惯用语用于缩短编译时间,但代价是可读性和一点运行时性能。目前一个项目需要很长时间才能编译,如何衡量最好的 pimpl 候选人?

我有使用 pimpl 的经验,可以将项目的编译时间从两小时缩短到十分钟,但我这样做只是出于直觉:我推断类头文件包含 (1) 大量源代码 ( 2) 复杂/模板类,是使用 pimple 习语的最佳人选。

是否有一种工具可以客观地指出哪些类是好的 pimpl 候选者?

最佳答案

的确,Pimpl 对增量编译很有用。

但使用 Pimpl 的主要原因是为了保持 ABI 兼容性。这是我过去公司对 API 中几乎所有公共(public)类的规定。

另一个优势是您还可以将您的库作为包含 header 的包进行分发,而不会公开实现细节。

为此我会说:尽可能使用 Pimpl。

一篇关于 Qt Pimpl 实现细节和优势的非常好的文章:https://wiki.qt.io/D-Pointer

编译时问题必须通过以下方式解决:

  • 使用预编译头文件
  • 按代码接触频率将您的大项目分成小项目。不经常更改的部分可以在库中编译并发布在其他项目按版本引用的本地存储库中。
  • ...

关于c++ - 如何衡量 pimpl 候选人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35669863/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com