first I new a DozerBeanMapper instance, code is like this:
public class MapConfig {
private static MapConfig instance = new MapConfig();
private Mapper mapper;
private MapConfig(){
init();
}
public Mapper getMapper(){
return mapper;
}
public static MapConfig getInstance(){
return instance;
}
private void init(){
// mapper = DozerBeanMapperSingletonWrapper.getInstance();
mapper = new DozerBeanMapper();
List<String> myMappingFiles = new ArrayList<String>();
myMappingFiles.add("dozer-bean-mappings.xml");
DozerBeanMapper dbm = (DozerBeanMapper)mapper;
dbm.setMappingFiles(myMappingFiles);
}
}
then do mapping:
Mapper mapper = MapConfig.getInstance().getMapper();
Meeting m = new Meeting();
m.setTitle("my meeting");
m.setRecurrenceFlag(true);
Meeting2 m2 = new Meeting2();
long startTime = System.nanoTime();
mi.setTopic(m.getTitle());
mi.setRecurrence(m.isRecurrenceFlag());
long endTime = System.nanoTime();
System.out.println("set mi value = " + (endTime - startTime) / 1000000.0 + "ms");
long startTime3 = System.nanoTime();
mapper.map(m, m2);
long endTime3 = System.nanoTime();
System.out.println("map m2 value = " + (endTime3 - startTime3) / 1000000.0 +"ms");
it consumes 495.911581ms first time, when i do it again, it consumes 0.4578ms
So, what's the reason, I want the first time is fast.