【发布时间】:2011-01-31 04:17:15
【问题描述】:
在 .NET 中,如果将整数表示为字符串,那么以字符为单位的整数长度的最佳方法是什么?
例如
1 = 1 个字符
10 = 2 个字符
99 = 2 个字符
100 = 3 个字符
1000 = 4 个字符
显而易见的答案是将 int 转换为字符串并获取其长度,但我希望尽可能获得最佳性能,而无需创建新字符串的开销。
【问题讨论】:
-
始终平衡您试图获得的免费微秒与可怜的傻瓜(我猜是您自己)的昂贵阅读时间,后者必须稍后阅读和调试该代码。
-
-
如果转换为以 10 为底的性能是一个问题,那么您应该为整数考虑直接十进制表示,例如 BCD。这种转换损失是计算器和早期 CPU 具有 BCD 算法的原因之一。
-
@GregS - 我怀疑不是转换本身就是问题,而是用大量无用的字符串填充字符串堆。然而,基于 GC 的工作方式,我认为这在实践中也不是问题。
标签: .net performance string math