프로그램의 실행 시간과 타이머를 계산하다

HDOJ시스템을 보면 일부 IDE는 계산 프로그램의 실행 시간 기능을 가지고 있지만 사실은 매우 간단하다. 시스템류의currentTimeMills() 방법을 호출하여 시작 시간과 끝 시간을 얻고 뺄셈을 하면 OK이다.
package zz.systemdemo;
public class SystemDemo {
	public static void main(String []args){
		//             
		long startTime = System.currentTimeMillis();

		int sum = 0; //              
		for (int i = 1; i < 30000000; i++) {
			sum += i;
		}

		//            
		long endTime = System.currentTimeMillis();
		System.out.println("       :" + (endTime - startTime) + "  ");
	}
}

-
-> 프로그램 실행 결과(내 기기에서): 프로그램 실행 시간: 61밀리초 프로그램의 결과는 불안정하고 다시 실행하면 시간이 늘어납니다. 왜 그런지 모르겠습니다.앞에서 메모리를 차지했는지 기계의 속도가 느려졌다.인터넷에서 찾아보니 아직 내용이 있는 것 같아서 깊이 연구해야 한다.또한 System 클래스의 방법은 모두 정적입니다.이전에 단편기를 배울 때 선생님께서 for() 순환으로 단편기의 정시, 지연 효과를 완성하는 것은 이상적이지 않다고 말씀하셨는데 이것은 일리가 있다.오늘 왕이의 블로그를 봤는데 기적적으로 열렸어요.이전의 지식을 돌이켜 보면 옛 것을 배우고 새로운 것을 알 수 있다.
타이머로 주마등을 제어하는 두 가지 방법으로 정시 스케줄링을 실현한다. Timer류는 일종의 스레드 시설로 특정한 시간이나 일정 시간 후에 특정한 임무를 한 번 또는 정기적으로 반복 집행하도록 할 수 있다. 이 기능은 TimerTask와 협조해야 한다.TimerTask 클래스는 Timer가 예약한 작업을 수행하는 데 사용됩니다.Timer 클래스의 특징: 모든 Timer 대상은 하나의 라인에 대응하기 때문에 타이머가 실행하는 임무는 신속하게 완성해야 한다.그렇지 않으면,
package zz.timertaskdemo;

import java.util.TimerTask;
import java.util.Date;
import java.util.Timer;
import java.text.SimpleDateFormat;

class MyTask extends TimerTask{			//           TimerTask
	public void run() {
		SimpleDateFormat sdf = null;
		sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss.SSS");
		System.out.println("       :" + sdf.format(new Date()));
	}
}

public class TimerTaskDemo{
	public static void main(String []args){
		Timer t = new Timer();		//   Timer   
		MyTask mt = new MyTask();	//     
		t.schedule(mt, 1000, 2000);	//   (     ,1    , 2   )
		//t.scheduleAtFixedRate(mt, 1000, 2000);	//   (     ,1    , 2   )

	}
}

내 기계의 운행 결과: 1.scheduleAtFixedRate () 함수 t.scheduleAtFixedRate (mt, 1000, 2000) 를 사용합니다.//설정(작업 실행, 1초 후 시작, 2초마다 중복)현재 시스템 시간: 2012-07-22 21-08-05.996 현재 시스템 시간: 2012-07-22 21-08-07.951 현재 시스템 시간: 2012-07-22 21-08-09.951 현재 시스템 시간: 2012-07-22 21-08-11.951 현재 시스템 시간: 2012-07-22 21-02 21-08-15.951 현재 시스템 시간: 2012-07-22 21-08-15.951 현재 시스템 시간: 2012-07-22 21-08-17.951 현재 시스템 시간:schedule() 함수 t.schedule(mt, 1000, 2000);//설정(작업 실행, 1초 후 시작, 2초마다 중복)현재 시스템 시간: 2012-07-22 21-11-06.023 현재 시스템 시간: 2012-07-22 21-11-07.977 현재 시스템 시간: 2012-07-22 21-11-109.977 현재 시스템 시간: 2012-07-22 21-11-11.977 현재 시스템 시간: 2012-07-22 21-113.977 현재 시스템 시간: 2012-07-22 21-11-15.977 현재 시스템 시간: 2012-07-22 21-11-11-20.124 현재 시스템 시간: 2012-07-22 21-112.12 현재 시스템 시간:시간: 2012-07-22 21-11-24.124 현재 시스템 시간: 2012-07-22 21-11-26.124 현재 시스템 시간: 2012-07-22 21-11-28.124 현재 시스템 시간: 2012-07-22 21-11-31.665 현재 시스템 시간: 2012-07-22 21-11-13.665 두 함수의 차이점: schedule() 방법의 집행 시간은 고정적이며 이전에 지연된 상황이 발생하면 이후에도 설정된 간격에 따라 집행한다.융통성이 없는 고집쟁이.scheduleAtFixedRate () 함수는 지연에 따라 다음 실행 간격을 조정할 수 있어 더욱 유연하게 변통할 수 있습니다.

좋은 웹페이지 즐겨찾기