问题背景:
JudgeOnline的制作,也就是类似在线程序判题系统。
现在已经把核心的部分搞定了,主要能判断提交上来的程序运行是否正常编译以及执行结果是否正确。
现在在内存方面遇到困难,希望论坛里的高手帮忙提供下解决思路。
问题产生:
我用的是java中Runtime , Process两个类来进行源代码编译和执行的,现在对于所执行的程序都能够通过
编译和执行,但是作为程序优劣对比,需要获取程序执行时间以及程序执行所占用内存。
问题:
主要代码如下:
......
Runtime r = Runtime.getRuntime();
Process p = r.exec("执行程序命令");
......
这样产生了一个所执行程序的进程,但是Process类里没有有关时间和内存的库函数,而Runtime类里面的
关于内存的库函数是指当前java程序的内存,并不是我需要执行的那个程序的内存。
谢谢指教,感激不尽......
JudgeOnline的制作,也就是类似在线程序判题系统。
现在已经把核心的部分搞定了,主要能判断提交上来的程序运行是否正常编译以及执行结果是否正确。
现在在内存方面遇到困难,希望论坛里的高手帮忙提供下解决思路。
问题产生:
我用的是java中Runtime , Process两个类来进行源代码编译和执行的,现在对于所执行的程序都能够通过
编译和执行,但是作为程序优劣对比,需要获取程序执行时间以及程序执行所占用内存。
问题:
主要代码如下:
......
Runtime r = Runtime.getRuntime();
Process p = r.exec("执行程序命令");
......
这样产生了一个所执行程序的进程,但是Process类里没有有关时间和内存的库函数,而Runtime类里面的
关于内存的库函数是指当前java程序的内存,并不是我需要执行的那个程序的内存。
谢谢指教,感激不尽......
解决方案 »
- Swing Jtable 存值
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
- String Split 问题
- HttpClient HTTPS 连接池问题。
- java并发编程实践中----代码“重排列”问题请教?
- 为什么我修改文件以后,用记事本打开,换行变成了特殊符号??
- 如何快速检测网络是否是通的??
- 初学者问题:怎样配置java环境?
- 白送分100,借宝地一用,很快的
- 如何在用JAVA启动程序之后,命令窗口自动退出,只运行JAVA程序啊?
- 跪求
- 程序都运行结束了,main方法退出了,还是不执行finalizer方法,怪了。
在执行后再调用然后减去前面的时间就可以了内存我一般看任务管理器, 不知道有没有更好的建议
时间建议用Date()去获取。
public static long currentTimeMillis()返回以毫秒为单位的当前时间。注意,当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。
内存我就不知道了,看看有没有高手解答一下。
如果想用纯java实现上面的功能,可能会比较复杂,暂时想不到方法。
long startTime = System.currentTimeMillis();//获取系统当前毫秒数
在测试的程序在后测试
long endTime = System.currentTimeMillis();//获取系统当前毫秒数
两者做个差值即可