【发布时间】:2016-08-29 21:07:35
【问题描述】:
我写了一个java程序,可以编译,执行别人提交的代码(cpp,java)。我正在使用 java 的进程类来执行此操作。进程类调用g++ 或java compiler。出于某种目的,我需要知道该进程的实际执行时间或执行该代码需要多少时间。
process.waitFor(2000, TimeUnit.MILLISECONDS)
这个过程正在等待 2000 毫秒,但是如果这个过程在 2000 毫秒内完成,我怎么知道这个过程需要多少时间?
======更新===== 我目前这样做是一种旧方式。
StopWatch.Start();
process.waitFor(dto.getTimeLimit(), TimeUnit.MILLISECONDS)
long timeEplased = StopWatch.Stop();
StopWatch 是我的书面课程,使用System.nanoTime() 计算经过的时间。
【问题讨论】:
-
@alfasin 真的吗?我目前正在这样做。有没有更聪明的方法?我将更新我的问题,即我现在正在做什么。
-
“真的吗?” - 是的。这是一项简单的任务,通过使其“更智能”,您肯定会以过于复杂的实现结束。保持简单的芽。
-
@alfasin 我正在寻找一种可以提供精确度的方法。 :) 使用 Process 类必须有一些开销。
-
嘿嘿..好点。顺便说一句谢谢。 :)