相关疑难解决方法(0)

C#十进制数据类型性能

我正在用C#编写财务应用程序,其中性能(即速度)至关重要.因为它是一个财务应用程序,我必须集中使用Decimal数据类型.

在分析器的帮助下,我尽可能地优化了代码.在使用Decimal之前,所有操作都是使用Double数据类型完成的,并且速度提高了几倍.但是,Double不是一个选项,因为它具有二进制特性,在多个操作过程中会导致很多精度错误.

是否有可以与C#连接的十进制库,这可以使我在.NET中的原生Decimal数据类型上获得性能提升?

基于我已经得到的答案,我注意到我不够清楚,所以这里有一些额外的细节:

  • 应用程序必须尽可能快(即使用Double而不是Decimal时的速度,这将是一个梦想).Double比Decimal快约15倍,因为操作是基于硬件的.
  • 硬件已经是一流的(我在双氙四核上运行)并且应用程序使用线程,因此机器上的CPU利用率始终是100%.此外,该应用程序以64位模式运行,与32位相比,它具有可测量的性能优势.
  • 我已经超越了理智的程度(超过一个半月的优化;信不信由你,它现在需要大约1/5000的时间来完成我最初用作参考的相同计算); 这种优化涉及到一切:字符串处理,I/O,数据库访问和索引,内存,循环,改变一些事情的方式,甚至使用"切换"而不是"if"到处都有所不同.分析器现在清楚地显示剩余的性能元凶是在Decimal数据类型运算符上.没有别的东西会增加相当多的时间.
  • 你必须在这里相信我:我已经尽可能地进入C#.NET领域来优化应用程序,我对它目前的性能感到非常惊讶.我现在正在寻找一个好主意,以便将Decimal性能提高到接近Double的水平.我知道这只是一个梦想,但只是想检查一下,我想到了一切可能.:)

谢谢!

c# performance decimal

54
推荐指数
5
解决办法
2万
查看次数

标签 统计

c# ×1

decimal ×1

performance ×1