gpt4 book ai didi

c++ - 返回小结构的虚函数 - 返回值与输出参数?

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

我在热点代码中有一个虚函数需要返回一个结构作为结果。我有这两个选择:

virtual Vec4 generateVec() const = 0; // return value

virtual void generateVec(Vec4& output) const = 0; // output parameter

我的问题是,这些函数的性能通常有什么区别吗?我假设第二个更快,因为它不涉及复制堆栈上的数据。但是,第一个通常使用起来更方便。如果第一个仍然稍微慢一点,这是否可以测量?我是不是太着迷了:)

我要强调的是,这个函数每秒将被调用数百万次,而且结构 Vec4 的大小很小 - 16 字节。

最佳答案

如前所述,尝试一下 - 但您很可能会发现 Vec4 generateVec() 实际上更快Return value optimizationelide the copy operation ,而 void generateVec(Vec4& output) 可能会导致不必要的 output 参数初始化。

有什么方法可以避免将函数变为虚函数?如果您每秒调用它数百万次,那么额外的间接级别值得关注。

关于c++ - 返回小结构的虚函数 - 返回值与输出参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177369/

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