C++ 使用太多的静态变量而不是普通变量是否更昂贵?如果是的话,怎么办?

C++ 使用太多的静态变量而不是普通变量是否更昂贵?如果是的话,怎么办?,c++,C++,我想知道,实现太多的静态变量而不是普通变量真的很昂贵吗?如果是的话,请提供一些例子 性能成本是可以忽略的,直到证明,所以你不应该把它看作是性能问题。你应该把它看作是一个设计问题。 与实例变量或局部变量相比,静态变量满足不同的目的。如果你需要使用很多,也许你可以将它们封装在对象中。可以。它可能导致缓存未命中,因为存储静态变量的内存通常与正在访问的其他变量/代码很好地分离。如果您发现自己在成员变量之外编写static const,请给自己一记耳光,然后将static拿出来(对不起,太多了,太讨厌了)

我想知道,实现太多的静态变量而不是普通变量真的很昂贵吗?如果是的话,请提供一些例子

性能成本是可以忽略的,直到证明,所以你不应该把它看作是性能问题。你应该把它看作是一个设计问题。
与实例变量或局部变量相比,
静态变量满足不同的目的。如果你需要使用很多,也许你可以将它们封装在对象中。

可以。它可能导致缓存未命中,因为存储静态变量的内存通常与正在访问的其他变量/代码很好地分离。如果您发现自己在成员变量之外编写
static const
,请给自己一记耳光,然后将
static
拿出来(对不起,太多了,太讨厌了)


但是,正如作者所指出的:在您检查并发现它是一个性能问题之前,您不应该担心它。这更多的是一个设计问题。

对于较旧/更简单的目标平台,您甚至可能会获得更多。与堆或堆栈访问相比,为静态生成的指令可能更简单,避免了一级间接寻址

先把代码写对。“普通”变量也太模糊了。堆栈上的基本数据类型非常快。“其他杰克”哈哈