前几天,我的一位同事表示,使用静态类会导致多核系统出现性能问题,因为静态实例无法在处理器缓存之间共享。是对的吗?是否有一些关于证明此声明的基准?此声明是在 .Net 开发(使用 C#)相关讨论的背景下做出的,但在我看来它像是一个独立于语言和环境的问题。
感谢您的意见。
最佳答案
我会敦促您的同事提供数据或至少引用资料。
问题是,如果您拥有共享数据,那么您就拥有了共享数据。无论是通过静态类、单例还是其他方式公开,都不是很重要。如果您一开始就不需要共享数据,我希望您无论如何都不会有静态类。
除此之外,在任何给定的应用程序中,对于静态类中的共享数据,可能存在比处理器缓存更大的瓶颈。
一如既往,首先编写最明智、可读、可维护的代码 - 然后找出是否存在性能瓶颈并采取相应行动。
关于performance - 静态类会导致多核系统出现性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362632/