你可以用时间差来计算啊! 把代码块放在其中就是了. 线程的运行的时间也是类似的 public static void testRunningTime() { long t1 = System.currentTimeMillis(); // invoke your program here long t2 = System.currentTimeMillis(); System.out.println("Your program has executed for " + (int)((t2-t1)/1000)+ " seconds " + ((t2-t1) % 1000) + " micro seconds"); } 至于计算程序运行时占用的内存,只能够借助软件了...........
http://topic.csdn.net/t/20031217/18/2574692.html
一个线程大约占用内存是1M左右有很多书都有相应的文章,你也可以看看《java高级网络编程》
List<Integer> list = new ArrayList<Integer>(); long start = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { list.add(new Integer(i)); } long end = System.currentTimeMillis(); long jieguo = end - start; long hh = jieguo % (1000 * 60 * 60); long mm = jieguo % (1000 * 60); long ss = jieguo % 1000; System.out.println("hh:" + hh); System.out.println("mm:" + mm); System.out.println("ss:" + ss); System.out.println("毫秒:"+jieguo);
时间可以了。可以利用Timer和TimerTask设定程序(线程)的运行时间上限。 public class compileRunTimerTask extends TimerTask{ long timeLimited; //程序运行的最大时间限制 long startTime; //程序开始运行的初始时间
把代码块放在其中就是了.
线程的运行的时间也是类似的
public static void testRunningTime() {
long t1 = System.currentTimeMillis();
// invoke your program here
long t2 = System.currentTimeMillis();
System.out.println("Your program has executed for "
+ (int)((t2-t1)/1000)+ " seconds "
+ ((t2-t1) % 1000) + " micro seconds");
}
至于计算程序运行时占用的内存,只能够借助软件了...........
List<Integer> list = new ArrayList<Integer>();
long start = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
list.add(new Integer(i));
}
long end = System.currentTimeMillis();
long jieguo = end - start;
long hh = jieguo % (1000 * 60 * 60);
long mm = jieguo % (1000 * 60);
long ss = jieguo % 1000;
System.out.println("hh:" + hh);
System.out.println("mm:" + mm);
System.out.println("ss:" + ss);
System.out.println("毫秒:"+jieguo);
public class compileRunTimerTask extends TimerTask{
long timeLimited; //程序运行的最大时间限制
long startTime; //程序开始运行的初始时间
/**
* @param timeLimited - 程序运行的最大时间限制
* @param startTime - 程序开始运行时的系统时间
*/
public compileRunTimerTask(int timeLimited,long startTime){
this.timeLimited=timeLimited;
this.startTime=startTime;
}
@Override
public void run() {
// TODO Auto-generated method stub
if(System.currentTimeMillis()-startTime>timeLimited){
//杀死线程,发送超时消息
}
//运行代码
}
}//调用Timer.schedule(task,0)就可但是java中的线程或得线程运行时内存开销还不知道。难道可以利用设置栈的大小来搞定(% java -Xss)?
各位大牛快点现身那..........