float 与 double 的优化测试
来源:互联网 发布:linux oracle图形安装 编辑:程序博客网 时间:2024/05/16 15:56
using System;namespace speed{ class Program { static void Main(string[] args) { int i, j; float f1 = 7.125f, f2 = 7.125f; double d1 = 7.125d, d2 = 7.125d; DateTime dt = DateTime.Now; for (i = 0; i < 1000000000; i++) { f1 = f2 / 2.2f + 12.3333f; } TimeSpan ts = DateTime.Now - dt; Console.WriteLine("float cost time {0}", ts.ToString()); dt = DateTime.Now; for (i = 0; i < 1000000000; i++) { d1 = d2 / 2.2d + 12.3333d; } ts = DateTime.Now - dt; Console.WriteLine("double cost time {0}", ts.ToString()); Console.Read(); } }}
float cost time 00:00:08.0914628
double cost time 00:00:08.0644613
运行这段代码,得到的结论是,Float类型和Double类型的运算速度完全一样;由此可见,如果把Double 类型换成Float,程序的速度不会有任何提升。如果仅仅是这样,我们还可以接受Float,因为毕竟Float比较省内存;(float是32位的double是64位的)
但是运行下面的程序
using System;namespace speed{ class Program { static void Main(string[] args) { int i, j; float f1 = 7.125f, f2 = 7.125f; double d1 = 7.125d, d2 = 7.125d; DateTime dt = DateTime.Now; for (i = 0; i < 1000000000; i++) { j = (int)f1; } TimeSpan ts = DateTime.Now - dt; Console.WriteLine("float cost time {0}", ts.ToString()); dt = DateTime.Now; for (i = 0; i < 1000000000; i++) { j = (int)d1; } ts = DateTime.Now - dt; Console.WriteLine("double cost time {0}", ts.ToString()); Console.Read(); } }}
float cost time 00:00:03.6282076
double cost time 00:00:02.7981600
然而,Float很不争气,我发现了他的一个致命弱点,把Float转化成int花费的时间太长了,比把Double类型转成整形所花费的时间多了很多。
什么时候会出现这样的情况下呢?
在我们的组态元件的代码中,到处都是浮点转整形的运算(因为计算机图形需要光栅化,所以象素点坐标必须是整数),因此,如果我们使用Float类型的话,代码恐怕会非常的慢。
- float 与 double 的优化测试
- float与double的区别
- Float与Double的isNaN()
- Float与Double的isNaN()
- double与float的区别
- float 与double 的区别
- double与float的区别
- double 与 float的比较
- double与float的详解
- 关于int,float,double与Integer、Float、Double的理解
- DecimalFormat的疑惑(float与double)
- float与double的范围和精度
- float与double的范围和精度
- float与double的范围和精度
- float与double的范围和精度
- float与double的范围和精度
- float与double的范围和精度
- float与double的范围和精度
- css之自动换行
- 如何生成eboot.nb0
- java 基础
- JAVA容器类解析
- Python 3 不得不说的事儿
- float 与 double 的优化测试
- 你的手机应用是拍出来的吗
- 转贴:编译原理“龙书”“虎书”“鲸书”的书名是什么?
- HDU 1069 DP
- Android学习笔记之初级应用
- 子类实例化与函数的复写
- window下工具简介
- AS3分享34个flex as3代码细节性能优化
- 黑马程序员_WinFrom程序