none
奇怪的性能问题 RRS feed

  • 问题

  •         For i As Integer = 0 To 100000
                For k As Integer = 0 To 100000
                    Dim a As Double = Math.Sqrt(i + k)
                Next
            Next
    

    VB.net代码

     

     

                for (int i = 0; i < 100000; i++)
                    for (int k = 0; k < 100000; k++)
                    {
                        double a = Math.Sqrt(i + k);
                    }
    
    C#代码

     

    如果我要是没眼花,上面两个代码是一样的吧

    但在我机器上跑的时候,C#计算话费大概4300ms,而VB.net却花费了大概12000ms

    两段代码都是在默认属性的控制台工程里的,没有其他代码。

    C#和VB.net都是被翻译成IL来执行的,为何计算时间差这么多呢?

    或者说两个工程默认属性就存在某些不同?

     


    --!
    2011年9月30日 3:22

答案

全部回复