中国开发网: 论坛: 程序员情感CBD: 贴子 512120
没脾气2x: data[1000], 每个函数100000次, AMD 3000+ 1.80G
[code=c#] using System; using System.Collections.Generic; using System.Text; namespace TestSum { class Program { double sum1( double[] data, int N ) { int i; double sum = 1; for ( i = 0; i < N; i++ ) { sum *= data[i]; } return sum; } double sum2( double[] data, int N ) { int i; double sum = 1; int NN = N - 2; for ( i = 0; i < NN; i += 2 ) { sum *= data[i]; sum *= data[i + 1]; } for ( ; i < N; i++ ) sum *= data[i]; return sum; } double sum3( double[] data, int N ) { int i; double sum = 1; int NN = N - 3; for ( i = 0; i < NN; i += 3 ) { sum *= data[i]; sum *= data[i + 1]; sum *= data[i + 2]; } for ( ; i < N; i++ ) sum *= data[i]; return sum; } double sum2x2( double[] data, int N ) { int i; double sum1 = 1, sum2 = 1; int NN = N - 2; for ( i = 0; i < NN; i += 2 ) { sum1 *= data[i]; sum2 *= data[i + 1]; } for ( ; i < N; i++ ) sum1 *= data[i]; return sum1 * sum2; } double sum3x3( double[] data, int N ) { int i; double sum1 = 1, sum2 = 1, sum3 = 1; int NN = N - 3; for ( i = 0; i < NN; i += 3 ) { sum1 *= data[i]; sum2 *= data[i + 1]; sum3 *= data[i + 2]; } for ( ; i < N; i++ ) sum1 *= data[i]; return sum1 * sum2 * sum3; } void Run( string[] args ) { int N = 1000; double[] data = new double[N]; Random rand = new Random(); for ( int i = 0; i < N; i++ ) { data[i] = rand.NextDouble(); } int times = 100000; DateTime timeStart; DateTime timeEnd; timeStart = DateTime.Now; for ( int i = 0; i < times; i++ ) { sum1( data, N ); } timeEnd = DateTime.Now; Console.WriteLine( "Sum1 : {0}", timeEnd - timeStart ); timeStart = DateTime.Now; for ( int i = 0; i < times; i++ ) { sum2( data, N ); } timeEnd = DateTime.Now; Console.WriteLine( "Sum2 : {0}", timeEnd - timeStart ); timeStart = DateTime.Now; for ( int i = 0; i < times; i++ ) { sum3( data, N ); } timeEnd = DateTime.Now; Console.WriteLine( "Sum3 : {0}", timeEnd - timeStart ); timeStart = DateTime.Now; for ( int i = 0; i < times; i++ ) { sum2x2( data, N ); } timeEnd = DateTime.Now; Console.WriteLine( "Sum2x2: {0}", timeEnd - timeStart ); timeStart = DateTime.Now; for ( int i = 0; i < times; i++ ) { sum3x3( data, N ); } timeEnd = DateTime.Now; Console.WriteLine( "Sum3x3: {0}", timeEnd - timeStart ); } static void Main( string[] args ) { Program program = new Program(); program.Run( args ); } } } [/code]
Notemper2x 3.1 ( ̄ε( ̄#)
没脾气2x 之 个人综合篇: http://notemper2x.cndev.org/
我的 panoramio 相册: http://panoramio.com/user/zhaixudong
我的 flickr相册: http://www.flickr.com/photos/notemper2x/



QQ号20250出售,售价400,000元整(5位、皇冠80级、VIP7)a

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录