- 构建高质量的C#代码
- 曹化宇编著
- 420字
- 2020-08-28 10:28:00
代码 2-12:整数与浮点数运算速度测试(<SpeedTest>\Program.cs)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SpeedTest { class Program { static void Main(string[] args) { //Pow()方法测试 double resultDouble = 0D; Console.Write(">>>>浮点幂运算时间:"); long startTime = DateTime.Now.Ticks; for (int i = 1; i <= 10000000; i++) { resultDouble = Math.Pow(2D, 2D); } Console.Write(DateTime.Now.Ticks-startTime); Console.WriteLine(); //Power()方法测试 Console.Write(">>>>整数幂运算时间:"); long resultLong = 0L; startTime = DateTime.Now.Ticks; for (int i = 1; i <= 10000000; i++) { resultLong = Power(2L, 2); } Console.WriteLine(DateTime.Now.Ticks-startTime); } //整数求幂运算 static long Power(long x, int y) { if (y < 0) { return 0; } else if (y==0) { return 1; } else { long r=1; for (int i = 1; i <= y; i++) { r = r * x; } return r; } } } }
我们暂时先不考虑Power()方法中的代码,在逐渐学习的过程中,你会很容易理解这些代码的功能。
图2-7 为其中一次运算的结果,实际上,在我的计算机中每次执行此程序的结果都差不多,使用Pow()方法所需的时间都是Power()方法的8倍以上。(不同的计算机运行速度可能会有一定的差别。)
图2-7
由本例我们可以看出,在大量的运算过程中,整数运算的确比浮点数运算的速度要快得多,这一点在一些大型程序中应格外注意,比如在游戏中角色的位置计算,速度将会使游戏运行更流畅。
使用整数还是浮点数?我们必须根据项目中数据的特点和要求,以及对于速度和精度的需求等各方面因素的综合衡量来决定。