是否有可能使用 GDI 将字符串绘制到使用 StringBuilder 而不是字符串的图像上?没有接受 StringBuilder 的 Graphics.DrawString() 重载。但在某些情况下,常规字符串会显着增加 GC 时间(根据 CLR Profiler,在我的情况下为 52%)。
注意:我不想使用从 4.0 开始支持 StringBuilders 的 XNA 框架。
是否有可能使用 GDI 将字符串绘制到使用 StringBuilder 而不是字符串的图像上?没有接受 StringBuilder 的 Graphics.DrawString() 重载。但在某些情况下,常规字符串会显着增加 GC 时间(根据 CLR Profiler,在我的情况下为 52%)。
注意:我不想使用从 4.0 开始支持 StringBuilders 的 XNA 框架。
我不相信不使用一些替代图形库是可能的。
由于 .NET 4.0,内部StringBuilder
不使用String
类(即使使用反射也无法提取String
对象)。
你是对的,调用myStringBuilder.ToString()
会导致性能下降;它本质上是在每次调用它时复制你的字符串。但是在调用的代码中Graphics.DrawString()
,我只是不认为这是一个瓶颈。