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

来源:互联网 发布:windows环境开发ios 编辑:程序博客网 时间:2024/04/27 14:40

先看一段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
原创粉丝点击