使用ToUpperInvariant避免使用ToUpper
2011-07-15 09:41
169 查看
ToUpperInvariant使用不依赖于区域性进行转换,而ToUpper则使用了当前线程的CultureInfo,进行转换,所以性能会有所影响,以下为测试:
结果:
ToUpperInvariant:00:00:00.2980660
ToUpper:00:00:00.3281423
如果 确认当前的比较和区域性无关的话,推荐使用ToUppperInvariant
[Test] public void TestInvariant() { Int32 count = 1000 * 1000; Stopwatch watch = new Stopwatch(); String str = "abcdefghijklmnopqrstuvwxyz中华人民共和国"; watch = Stopwatch.StartNew(); for (int i = 0; i < count; i++) { str.ToUpperInvariant(); } Console.WriteLine("ToUpperInvariant:{0}", watch.Elapsed.ToString()); } [Test] public void TestNoInvariant() { Int32 count = 1000 * 1000; Stopwatch watch = new Stopwatch(); String str = "abcdefghijklmnopqrstuvwxyz中华人民共和国"; watch = Stopwatch.StartNew(); for (int i = 0; i < count; i++) { str.ToUpper(); } Console.WriteLine("ToUpper:{0}", watch.Elapsed.ToString()); }
结果:
ToUpperInvariant:00:00:00.2980660
ToUpper:00:00:00.3281423
如果 确认当前的比较和区域性无关的话,推荐使用ToUppperInvariant
ToUpperInvariant
相关文章推荐
- 尽量使用ToUpper比较,避免使用ToLower
- Item 6:避免使用终结函数
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- [转]MySQL如何避免使用swap
- 正确使用Block避免Cycle Retain和Crash
- COM 经验的八个教训(7):使用线程或异步调用来避免 DCOM 超时设定太长
- 多台服务器之间通信,使用ssh-kengen生成密钥,避免ssh scp等命令输入验证密码
- C++零食:WTL中使用双缓冲避免闪烁
- 在XML中尽量避免使用属性的原因
- QPointer很大程度上避免了野指针(使用if语句判断即可,类似于dynamic_cast),而且使用非常方便 good
- 使用vector::reserve来避免不必要的重新分配
- 使用 EmptyClass 避免条件判断
- easyui data-options的使用以及避免重复提交
- c++避免使用hash_map有性能 问题
- 使用Java 8 Optional避免空指针异常
- 使用vector::reserve来避免不必要的重新分配
- Android避免内存泄露:合理使用getContext()和getApplication()
- 开发者应该避免使用的6个Java功能
- 避免多层回调,Node.js异步库Async使用(series)
- 尽量避免使用递归