1. 程式人生 > 實用技巧 >csc.exe編譯引數的問題

csc.exe編譯引數的問題

/*------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);
}

} 說明:
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
可見使用/filealign引數,並帶一個較小的數值(必須是512的倍數),可以讓生成的檔案體積適度減小,並且還不太影響執行效率。另外還有一個問題就是我使用了優化,卻沒有提高程式效率,不知道為什麼。
以下是截圖: