package com.sleepycat.je.util; public class DbRunAction { private static final int EVICT=3; private static void doEvict( Environment env) throws DatabaseException { new DbRunAction_doEvict(env).execute(); } @MethodObject static class DbRunAction_doEvict { DbRunAction_doEvict( Environment env){ this.env=env; } void execute() throws DatabaseException { envImpl=DbInternal.envGetEnvironmentImpl(env); this.hook837(); c=new EnvironmentMutableConfig(); this.hook836(); env.setMutableConfig(c); start=System.currentTimeMillis(); env.evictMemory(); end=System.currentTimeMillis(); f=new DecimalFormat(); f.setMaximumFractionDigits(2); System.out.println("evict time=" + f.format(end - start)); } protected Environment env; protected EnvironmentImpl envImpl; protected long cacheUsage; protected EnvironmentMutableConfig c; protected long start; protected long end; protected DecimalFormat f; protected void hook836() throws DatabaseException { } protected void hook837() throws DatabaseException { } } @MethodObject static class DbRunAction_main { protected void hook844() throws Exception { if (doAction == EVICT) { preload(env,dbName); } original(); } protected void hook845() throws Exception { if (doAction == EVICT) { envConfig.setConfigParam(EnvironmentParams.ENV_RUN_EVICTOR.getName(),"false"); envConfig.setConfigParam(EnvironmentParams.EVICTOR_CRITICAL_PERCENTAGE.getName(),"1000"); } original(); } protected void hook846() throws Exception { if (action.equalsIgnoreCase("evict")) { doAction=EVICT; } else { original(); } } } }