我有一个用T4制作的自定义小“视图”引擎。基本上,它所做的是采用带有特殊指令的“静态”HTML文件并吐出类似的内容:
StringBuilder output...
output.Append("<html> my code blah");
if(MyParameter!=null){
output.Append(MyParameter.ToString);
}
output.append("more code");
return output.ToString();
当然,除此之外还有更多,但这就是要点。它需要一个HTML文件并生成一个普通的C#类。
我非常喜欢这种方式,因为我可以拥有静态类型的视图。不幸的是,这看起来有点慢。特别是我的问题是我有一个index
视图,其中多个包含blog entry
个视图,所以基本上相同的基本字符串最终会被构建,只需要在这里和那里基于几个不同的文本片段参数提供。
无论如何,我想知道是否有办法加速这个过程。有没有什么比StringBuilder更快的呢?
另外,不要担心“不干净”的代码。因为我使用T4来生成这些视图类,所以我可以使用一些很好的hack-ish代码并且它并不重要,因为我基本上只写了一次。
答案 0 :(得分:2)
对于StringBuilder
替代
另外
答案 1 :(得分:0)
请指定创建的StringBuilder的容量。这将避免多个内存分配。例如:
var a = new StringBuilder(3000);
其中,3000是估计的最终字符串大小