화면 로딩 시간 체크용
화면 로딩시 3초 기준으로 판단
package *********;
/**
*
*
* 1. Comment : 화면 로딩시간 타이머
* 2. FileName : StopWatch.java
* 3. Package : TimeCount
* 5. 작성일 : 2012. 11. 6. 오후 2:08:11
*
*/
public class StopWatch {
long startTime;
long elapsedTime = 0;
StringBuffer currentName;
boolean threadFlag = false;
public StopWatch() {
currentName = new StringBuffer();
startTime = System.nanoTime();
}
public StopWatch(boolean threadFlag) {
chageMessage("", false, false);
}
public StopWatch(String message) {
chageMessage(message, false, true);
}
public StopWatch(String message, boolean threadFlag) {
currentName = new StringBuffer();
startTime = System.nanoTime();
chageMessage(message, threadFlag, true);
}
public void chageMessage(String message, boolean threadFlag, boolean resetFlag) {
StringBuffer threadName = new StringBuffer();
this.threadFlag = threadFlag;
if(threadFlag){
threadName.append("ThreadName=").append(Thread.currentThread().getName());
}
currentName.append("[").append(message).append(threadName).append("]");
if(resetFlag){
start();
}
}
public void start() {
startTime = System.nanoTime();
elapsedTime = 0;
}
public void stop(){
elapsedTime = System.nanoTime()-startTime;
}
public double getElapsedMS(){
if(elapsedTime == 0){
stop();
}
return elapsedTime/1000000.0;
}
public double getElpasedNano(){
if(elapsedTime == 0){
stop();
}
return elapsedTime;
}
public String toString(){
if(elapsedTime==0)
stop();
currentName.append("elapsed Time : ").append(elapsedTime/1000000.0).append("ms");
return currentName.toString();
}
}
사용법
<%@ page import="******.util.StopWatch" %>
<%
StopWatch timer = new StopWatch("Class.method",true);
%>
화면 소스
<% out.println(timer); %>
출력결과
[Class.methodThreadName=[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']elapsed Time : 115.357769ms