时钟()时间之间的时差,单位为c++;java中的System.CurrentTimeMillis()和System.CurrentTimeMillis()
我的工作: < > 1。我用java语言调用了一个C++方法,用SWIG中间文件生成包装器。 <> 2。在C++代码中使用CordOn()时间,计算C++中方法写的总时间(从开始到结束的不同)。 3.在java中,我使用System.CurrentTimeMillis()计算调用该方法所需的时间 我必须知道的是:时钟()时间之间的时差,单位为c++;java中的System.CurrentTimeMillis()和System.CurrentTimeMillis(),java,c++,Java,C++,我的工作: < > 1。我用java语言调用了一个C++方法,用SWIG中间文件生成包装器。 2。在C++代码中使用CordOn()时间,计算C++中方法写的总时间(从开始到结束的不同)。 3.在java中,我使用System.CurrentTimeMillis()计算调用该方法所需的时间 我必须知道的是: 在毫秒内计算这两个差时,发现在调用java中的方法时C++内部的时间差大于时差。 1.从java调用方法所花费的时间如何小于方法内部所花费的总时间 2.clock()时间和System.C
在毫秒内计算这两个差时,发现在调用java中的方法时C++内部的时间差大于时差。 1.从java调用方法所花费的时间如何小于方法内部所花费的总时间
2.clock()时间和System.CurrentTimeMillis()之间有什么区别吗?请注意,我不是Java程序员 1)
System.currentTimeMillis
与clock
根据实现情况(参见2),clock
将返回(大致)程序执行的时间System.currentTimeMillis
以毫秒为单位返回UNIX时间,这与clock
相比不太正确。同样值得一提的是,currentTimeMillis
也依赖于平台
在Java方面,您应该使用System.nanoTime()
,请参阅
2) 时钟
在不同平台上的定义不同
简单地说,clock
返回墙时间还是CPU时间取决于您所在的平台
要匹配System.nanoTime()
来测量CPU时间,请将std::clock
与std::chrono::high_resolution_clock
一起使用。您可以在此处看到一个工作示例:
是的,currentTimeMillis更新不如nanoTime(但效率更高)。时钟与纳米时间更为兼容。@JoopEggen但是
clock
实际测量的内容在Windows和Linux之间有所不同,在Windows上它测量时钟时间(“实时”),在Linux上它测量CPU时间。如果进行了任何睡眠,平台之间的测量结果将大相径庭。感谢回复@058094041@CibinWilliam谢谢你回来接受:)
clock_t start=clock();
clock_t end=clock();
double elapsed_secs = double(end - start) / (CLOCKS_PER_SEC)*1000;