kr.co.hit.live.profile
Class ObjectProfiler

java.lang.Object
  extended by kr.co.hit.live.profile.ObjectProfiler

public class ObjectProfiler
extends Object

Object가 사용하는 메모리 량을 Profiling 하는 클래스이다. Object내의 멤버 객체들을 recursive하게 탐색하여 최초에 주어진 객체를 root로 하는 Object 트리 구조를 모두 탐색하여 그 멤버들의 타입과 크기까지 모두 profiling한다.

Object 내의 멤버 객체들의 구성을 가져오기 위하여 ClassFieldResolver 클래스를 사용하며, profile() 후 생성된 ProfileNode를 탐색하기 위하여 ProfileNodeVisitor의 구현 클래스를 사용한다.

사용 예:

                ClassFieldResolver resolver = new ClassFieldResolver();
                resolver.excludeMemberType("org.apache.commons.logging.Log");

                resolver.excludeStaticMember(false);
                resolver.excludeParentClass("kr.co.hit.live.web.action.AbstractWebAction");
                resolver.excludeParentClass("kr.co.hit.live.context.ContextAwareService");
                resolver.excludeParentClass("kr.co.hit.live.dao.JdbcDAO");

                resolver.ignoreException(false);
                resolver.exposeProxy(true);

                ObjectProfiler profiler = new ObjectProfiler(resolver);
                ProfileNode root = null;
                try {
                        root = profiler.profile(svcObject);
                } catch(Exception ex) {
                        throw new LiveException("com.info.00008","프로파일링 오류입니다.",ex);
                }
                ProfileNodeVisitor visitor = new ValueObjectVisitor(dumpVO,depth);
                root.traverse(visitor);
 

Since:
4.0
Author:
김형도

Constructor Summary
ObjectProfiler(ClassFieldResolver fieldResolver)
          생성자이다.
 
Method Summary
 ProfileNode profile(Object rootObj)
          주어진 Object로부터 연결된 모든 Object들에 대한 profile 작업을 수행한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectProfiler

public ObjectProfiler(ClassFieldResolver fieldResolver)
생성자이다. Profiling시 사용할 ClassFieldResolver 객체를 넘겨준다.

Parameters:
fieldResolver -
Method Detail

profile

public ProfileNode profile(Object rootObj)
주어진 Object로부터 연결된 모든 Object들에 대한 profile 작업을 수행한다. 그 결과로 프로파일 정보를 구성하는 ProfileNode 객체를 반환한다.

Parameters:
rootObj - 프로파일링하고자하는 객체
Returns:
ProfileNode 프로파일 결과 트리의 root 노드 객체


Copyright © 2014. All Rights Reserved.