我很想知道我是否可以创建一个优化版本StringBuilder
(尝试加快速度,因为它目前是我的一个应用程序的瓶颈)。对我来说不幸的是,它似乎利用了我无法使用的“神奇”系统调用(或者看起来如此)。
反编译源代码后System.Text.StringBuilder
,我注意到它使用了以下内部(因此不可调用)系统调用:
[SecurityCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
internal static string FastAllocateString(int length);
还有这个未记录的属性被大量使用:
[ForceTokenStabilization]
我能够FastAllocateString(n)
用 just替换所有调用String.Empty
并注释掉所有[ForceTokenStabilization]
属性。在这样做之后,并从其他类中复制粘贴一些方法,我实际上能够让它编译。(完整代码)。
我真的不想做这两个权衡,因为我认为它们存在是有原因的。
- 任何人都知道一个秘密的忍者替代方式打电话
FastAllocateString
? - 任何人都知道
ForceTokenStabilization
真正的作用(以及可能实现它的另一种方法?)