当前位置:  开发笔记 > 编程语言 > 正文

静态只读字段和性能

如何解决《静态只读字段和性能》经验,为你挑选了1个好方法。

假设我有一个类,其中包含许多用配置文件中的数据初始化的字段。Resharper等。等 通常建议使用静态只读修饰符。

我的理解是,static关键字使变量存储在堆栈中,而不是堆中。因此,我开始怀疑具有大量静态字段是否会对内存使用产生影响。我四处搜寻,而我能找到的最好的是这篇关于静态字符串的文章说(强调我):

在字符串上使用static关键字时,表示仅需要一个字符串引用,该引用只能指向一个对象。如果程序中有很多字符串值,请不要选择static关键字。

但是不幸的是,它并不能解释原因。

因此,我目前最好的猜测是,由于涉及到一个指针,因此使用static修饰符会带来性能上的提升,但您不应随意使用它们,因为这可能会给内存造成压力,因为垃圾收集器永远不会清除它们起来吗?

准确吗?



1> Kyle Sletten..:

射击。那是一篇写得很差的文章。

基本上,他们想要达到的目标是一个相对简单的概念:使用static关键字时,您只会获得一个变量,而如果省略关键字,则每个实例将获得一个变量。变量是静态的,不是字符串。

至于字符串的内存存储,所有字符串都存储在堆中,而不是堆栈中。唯一具有特殊存储的字符串称为“ interned”字符串,它们是完全不同的蠕虫病毒,根本不适用于此问题。

至于您的最后一条评论,寿命长的字符串是GC知道如何处理的完全正常的事情,一旦被删除并存活了一段时间,它们就进入了一个不会对性能产生很大影响的角落。

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有