Java学习笔记之一个计时小程序

先看一段java的代码

class TemplateDemo
{
    public static void main(String[] args)
    {
        long x=0;
        GetTime gt=new GetTime();
        gt.getTime();
    }
}

class GetTime
{
    private long startTime;
    private long endTime;
    private long countTime;

    public void start()
    {
        startTime=System.currentTimeMillis();
    }

    public void end()
    {
        endTime=System.currentTimeMillis();
        countTime=endTime-startTime;

        System.out.println("need time:"+countTime);
    }

    public void getTime()
    {
        startTime=System.currentTimeMillis();
            for(int i=0;i<100000;i++)
            {
                System.out.println(i);
            }
        endTime=System.currentTimeMillis();
        System.out.println("need time in java:"+(endTime-startTime));
    }

}

代码的意思应该很容易看懂,就是计算一段代码执行的时间。这里我简单计算了一个0-100000的for循环。
运行结果如下run_in_java

(不要关注背景代码,那是下面要说的事情)
接着我就想,用cpp实现同样的功能会不会更快?(毕竟人家一直说cpp效率比较高),然后我就去试了试,用的windows api 的timeGetTime函数。下面贴上代码:

#include <iostream>
#include <time.h>
#include <Windows.h>
#include <mmsystem.h>
using namespace std;

class GetTime
{
public:
    void getTime()
    {
        //startTime=time(NULL);
        startTime = timeGetTime();
        for (int i = 0;i<100000;i++)
        {
            cout << i << endl;
        }

        //endTime=time(NULL);
        endTime = timeGetTime();
        cout << "need time in cpp:" << endTime - startTime << endl;
    }

private:
    DWORD startTime;
    DWORD endTime;
};

int main()
{
    GetTime gt;
    gt.getTime();
    cin.get();
    return 0;
}

接着我就满怀欣喜的准备运行了,我还特意编译了x64的Release版本,然后运行了,下面是结果:
这里写图片描述

接着我就傻眼了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值