Ham*_*jan 4 .net premature-optimization string-interning
参考资料如下:http: //msdn.microsoft.com/en-us/library/system.string.intern.aspx
看起来这是由编译器自动完成的,但也可以手动完成.如果我错了,请纠正我,并对此有所了解.语言是C#,VB.Net,C++/CLI,还是其他?
谢谢.
我这样做的是反序列化/实现代码,当重复值很有可能时(几乎是枚举,但不完全).在反序列化数千条记录时,这可以带来显着的内存效益.但是,在这种情况下,您可能更喜欢使用单独的实习缓存,以避免共享一个(或者共享一个很好;它取决于场景).
但关键在于:您可能会有许多具有相同值的不同字符串实例.反序列化是那里的一个重要候选者.还应该注意,在检查内部缓存时会有一些CPU开销(在添加数据时会逐渐增加开销),所以如果构造对象有可能比gen-0更多地生存,那么这应该是可行的. ; 如果它们总是会被快速收集,那么就不值得将它们换成实习版本.