/*------CalcPI.cs-----*/
using System;
public class CalcPI
{
public const int Count=100000000;
public static void Main(string[] args)
{
DateTime start=DateTime.Now;
Random random=new Random(start.Millisecond);
int Inside=0;
for(int i=0;i<Count;i++)
{
double cx=random.NextDouble();
double cy=random.NextDouble();
double distance=Math.Sqrt((cx*cx)+(cy*cy));
if(distance<1.0)
{
++Inside;
}
}
double pi=4*(double)Inside/(double)Count;
DateTime end=DateTime.Now;
TimeSpan diff=end-start;
Console.WriteLine("pi={0}",pi);
Console.WriteLine("消耗时间:{0}ms",diff.TotalMilliseconds);
}
}
{
public const int Count=100000000;
public static void Main(string[] args)
{
DateTime start=DateTime.Now;
Random random=new Random(start.Millisecond);
int Inside=0;
for(int i=0;i<Count;i++)
{
double cx=random.NextDouble();
double cy=random.NextDouble();
double distance=Math.Sqrt((cx*cx)+(cy*cy));
if(distance<1.0)
{
++Inside;
}
}
double pi=4*(double)Inside/(double)Count;
DateTime end=DateTime.Now;
TimeSpan diff=end-start;
Console.WriteLine("pi={0}",pi);
Console.WriteLine("消耗时间:{0}ms",diff.TotalMilliseconds);
}
}
说明:
1、本实例中就以这个计算圆周率的程序来比较,为了较少偶然误差,估计算次数设置很大。
> > > >
可见使用/filealign参数,并带一个较小的数值(必须是512的倍数),可以让生成的文件体积适度减小,并且还不太影响执行效率。另外还有一个问题就是我使用了优化,却没有提高程序效率,不知道为什么。
1、本实例中就以这个计算圆周率的程序来比较,为了较少偶然误差,估计算次数设置很大。
> > > >
编译参数 | 文件大小 | 文件名 | 执行时间 |
/optimize | 3,584 字节 | CalcPI.exe | 8937.5ms |
/filealign:512 | 3,584 字节 | CalcPI512.exe | 8843.75ms |
/filealign:1024 | 5,120 字节 | CalcPI1024.exe | 9031.25ms |
/filealign:8192 | 32,768 字节 | CalcPI8192.exe | 8843.75ms |
以下是截图:
本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/167217,如需转载请自行联系原作者