gpt4 book ai didi

c++ - 单例模式性能问题

转载 作者:太空狗 更新时间:2023-10-29 23:33:06 26 4
gpt4 key购买 nike

我正在审查一段现有的代码,它使用了大量的单例类和访问。我正在尝试提高这段代码的性能。

想到的一件事是优化 Singleton::getInstance() 代码段。

而不是使用 Singleton::getInstance(),我倾向于用两次调用的结构来替换它。

一个。将创建和准备单例实例的函数,如 Singleton::prepareInstance() 将在子系统开始时调用一次。b. getInstance() 的内联实现,它只返回引用而不检查它是否有效。

这是一个可行的解决方案吗?有什么改进方法吗?

我当前的 Singleton::getInstance() 代码如下所示

Singleton * Singleton::getInstance() {
if(m_instance == NULL) {
m_instance = new Singleton();
}
return m_instance;
}

πìντα ῥεῖ 提到的方法是否更快?

最佳答案

b. an inline implementation of getInstance() that would just return the reference without checking if it's valid or not.

为什么要校验有效性?我的单例 GetInstance() 实现通常如下所示:

Singleton& Singleton::instance() {
static Singleton theInstance;
return theInstance;
}

我怀疑这样的代码不会对性能产生任何影响,也没有必要检查任何内容的有效性。

关于c++ - 单例模式性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22485432/

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