performance - 静态类会导致多核系统出现性能问题吗?

标签 performance language-agnostic static class

前几天,我的一位同事表示,使用静态类会导致多核系统出现性能问题,因为静态实例无法在处理器缓存之间共享。是对的吗?是否有一些关于证明此声明的基准?此声明是在 .Net 开发(使用 C#)相关讨论的背景下做出的,但在我看来它像是一个独立于语言和环境的问题。

感谢您的意见。

最佳答案

我会敦促您的同事提供数据或至少引用资料。

问题是,如果您拥有共享数据,那么您就拥有了共享数据。无论是通过静态类、单例还是其他方式公开,都不是很重要。如果您一开始就不需要共享数据,我希望您无论如何都不会有静态类。

除此之外,在任何给定的应用程序中,对于静态类中的共享数据,可能存在比处理器缓存更大的瓶颈。

一如既往,首先编写最明智、可读、可维护的代码 - 然后找出是否存在性能瓶颈并采取相应行动。

关于performance - 静态类会导致多核系统出现性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362632/

相关文章:

mysql - 哪种语言用于非常大的数据集和涉及的大量计算

c++ - 关于 C++ 中全局内联函数的示例

c++ - static 在这里的目的是什么?

javascript - Firefox 重绘非常慢(5 秒)

php - 在 PHP 中访问大数组

ios - NSManagedObjectContext 的 Save 方法性能

sql - 与内部联接相比,使用 WHERE 子句的交叉联接的性能

language-agnostic - 如果工厂返回的对象是静态的,它仍然被认为是工厂吗?

algorithm - 从链表中有效地选择一组随机元素

python - 不作用于对象数据的方法是否应该设为静态?