您的位置:首页 > 移动开发 > 微信开发

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

2016-01-13 12:06 621 查看
先看一段java的代码

[code]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循环。

运行结果如下


(不要关注背景代码,那是下面要说的事情)

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

[code]#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版本,然后运行了,下面是结果:



接着我就傻眼了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: