gpt4 book ai didi

c++ - 通过内联降低抽象层的成本

转载 作者:搜寻专家 更新时间:2023-10-31 00:40:10 25 4
gpt4 key购买 nike

在我的项目中,我有一些像这样的抽象层:

 Vector3 normalizeVector(Vector3 v);

Vector3 vectorMultiplyMatrix(Vector3 v, Matrix3 m);

它们只是平台特定数学库(如 DirectXMath)的“代理”函数。

我的问题是如何降低这些层的成本?通过使所有这些函数内联,是否可以完全消除调用它们而不是直接调用平台特定函数的成本?

谢谢

最佳答案

在将一堆函数调用捆绑到另一个函数调用的意义上,添加新的抽象级别(代理、外观等)的成本可以忽略不计。您将数据传递给它们的方式可能会给您带来麻烦,尤其是在使用复杂对象、容器等时。

Vector3 normalizeVector(Vector3 v);

在每次调用时创建传递的 Vector3 对象的拷贝。如果您遇到性能问题,请通过将按值传递更改为按 const 引用传递来避免创建拷贝:

Vector3 normalizeVector(const Vector3& v);

此函数的新原型(prototype)表示:“我需要一个对现有有效 Vector3 对象的引用,我将使用但不会更改该对象”

除非您真的遇到性能问题,否则不要优化您的代码。 过早的优化一直都是邪恶的,而且永远都是。

关于c++ - 通过内联降低抽象层的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174158/

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