C#代码:
-------------------------------------
int st = Environment.TickCount;
for (int i = 0; i < 100000000; i++)
{
                
}
Console.WriteLine(Environment.TickCount - st);
-------------------------------------
我电脑结果:484java代码:
-------------------------------------
long st=Calendar.getInstance().getTimeInMillis();
for (int i = 0; i < 100000000; i++) {}
System.out.println(Calendar.getInstance().getTimeInMillis()-st);
-------------------------------------
我电脑结果:78是不是说明java执行代码效率高呢?

解决方案 »

  1.   

    用System.Diagnostics.Stopwatch 测试一下试试
      

  2.   

    C#代码是375 我电脑很一般的。java不会
      

  3.   


    一个案例:
    需要读取一个txt文件中每一行的字符串加密再保存到另一个txt。txt中有上亿条记录。
    用这样的循环读取处理,java每次完成需要10分钟以上,C#每次完成就更漫长了。
    请问,是不是要考虑效率??
    或者我得思路不对。
      

  4.   

    楼主你不知道按F5运行和直接双击性能差距很大吗?
    我的测试结果C#是:36CPU是E5500,系统Win7-32bit
      

  5.   

    所谓无聊是指这种:D:\tests>csc /debug- /optimize test3.cs
    Microsoft(R) Visual C# 2010 编译器 4.0.30319.1 版
    版权所有(C) Microsoft Corporation。保留所有权利。
    D:\tests>test3
    0D:\tests>type test3.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;class Program
    {
            static void Main(string[] args)
            {
                    int st = Environment.TickCount;
                    for (int i = 0; i < 100000000; i++){}
                    Console.WriteLine(Environment.TickCount - st);
            }
    }txt里有上亿条数据本身就很奇怪。就算要读取,用内存映射文件并且使用多线程读取要好得多。
      

  6.   

    必须不一样啊  根本就是不一样的东西 拿来比有意思吗?  
    那你怎么不拿汇编和JAVA比
      

  7.   

    如果比较基本循环和4则运算的话,C#的性能和C是一模一样的,不信你自己测。还有,这种循环有可能会在编译时优化掉,尤其是C,你测试的时候最好用IDA看下,C#的性能在java之上,这个是不争的事实了,网上各类测试太多了,你自己找吧
      

  8.   


    很想知道您电脑上执行java代码是多少。再有,电脑好的,可以把循环改成10亿次比较。
    “C#的性能在java之上,这个是不争的事实了”我不是在比较性能,只是想找到一下问题解决办法。
    现在有个工作:需要读取一个txt文件中每一行的字符串加密再保存到另一个txt。txt中有上亿条记录。
    用这样的循环读取处理,C#每次完成需要的时间久,被迫选择了java去做。
      

  9.   

    To:iyomumx
    "用内存映射文件并且使用多线程读取要好得多。"
    我想用同样的方法java也会比C#快,有时间我比较下。
      

  10.   

    貌似一个是毫秒,一个是tick,单位不一样
    1毫秒=10000ticks
      

  11.   

    觉得有问题,先查查才对啊
    http://msdn.microsoft.com/zh-cn/library/system.environment.tickcount.aspx
    是毫秒没错的
      

  12.   

    楼主说说自己的问题吧,你是怎么读文件,怎么加密,后续怎么处理的?
    如9#所说,在相同的编译器优化策略下,release模式这种空循环的效率不低于C。
    所以楼主不要把Debug模式的结果当成C#的效率,除非楼主想要比谁慢。
      

  13.   

    java刚试完,和C#速度一模一样