【发布时间】:2016-12-21 20:46:18
【问题描述】:
我有一个程序可以循环写入一系列文件。文件名是使用来自提供给该方法的对象的参数构造的。
ANTS Performance Profiler 说这很慢,我不知道为什么:
public string CreateFilename(MyObject obj)
{
return "sometext-" + obj.Name + ".txt";
}
有没有更高效的方法来做到这一点?该方法被点击了数千次,我不知道除了为此目的使用离散方法之外的好方法,因为输入对象超出了我的控制范围并且会定期更改。
【问题讨论】:
-
用
String.Format()函数对其进行基准测试,我认为它会稍微快一些。但是tbh,concatenation的代价不是很高,我猜这是不必要的优化? -
使用
StringBuilder。显然StringBuilder应该是某种私有字段,只初始化一次。但随心所欲地使用它。 -
@M.kazemAkhgary string.format 在幕后使用了字符串生成器。
-
String.Format和StringBuilder会明显变慢。不知道为什么有人推荐其中任何一个。 -
@joelc 优化 0.01% 的瓶颈是没有意义的。我不是想在这里搞笑,只是你在浪费时间。瓶颈在别处。
标签: c# string performance