在轻量级参考对象中封装字符串与在字符串中封装字符串相比,是否会有任何性能提升。无论它是否包含在值类型或引用类型中,字符串变量是否都不会完全指向堆?
答案 0 :(得分:3)
字符串始终位于堆上,因此无济于事。在结构中引用字符串只能使它变慢,因为它需要额外的derefence。但这在实践中可能无法衡量。
如果你真的想要一个字符串在堆栈而不是堆上,你必须创建自己的自定义字符串作为包含字符的结构。但是,由于结构具有固定大小,因此无法获得很多痛苦并且只能用于表示固定大小的字符串。
答案 1 :(得分:0)
由于您将此标记为.NET,因此字符串肯定会存储在堆上。但是,我不认为会有明显的差异,为什么会有?首先,对象或结构必须取消引用和定位,然后是字符串本身。如果你没有从性能和内存的角度来封装字符串,那么它可能是一个加号。