core-jgi/base/src/org/compiere/Base.java

157 lines
5.3 KiB
Java

/******************************************************************************
* Product: Adempiere ERP & CRM Smart Business Solution *
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* For the text or an alternative of this public license, you may reach us *
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
* or via info@compiere.org or http://www.compiere.org/license.html *
*****************************************************************************/
package org.compiere;
import java.math.*;
import java.util.*;
import org.compiere.model.*;
import org.compiere.util.*;
/**
* Base Library Test Classes mainly for Optimize it
*
* @author Jorg Janke
* @version $Id: Base.java,v 1.5 2006/09/21 20:44:54 jjanke Exp $
*/
class Base
{
/**
* Base Test
*/
public static void test()
{
System.out.println("** Before Init **"); //$NON-NLS-1$
getMemoryUsed();
Properties ctx = Login.initTest(false);
// Log.printProperties(System.getProperties(), "System", false);
//
System.gc(); // cleanup Init
//
System.out.println("** Before Creation **");
long start = getMemoryUsed();
// *******************************************************************
// Table=100, Shipper=142, Window=102, Reference=101
int AD_Window_ID = 102;
long startTime = System.currentTimeMillis();
GridWindowVO vo = GridWindowVO.create(Env.getCtx(), 1, AD_Window_ID);
GridWindow w = new GridWindow(vo);
long endDef = System.currentTimeMillis();
System.out.println("Load Definition Time in ms = " + String.valueOf(endDef-startTime));
if (1==2) // optional step
{
w.loadCompete();
long endDefComplete = System.currentTimeMillis();
System.out.println("Load Definition Complete Time in ms = " + String.valueOf(endDefComplete-startTime));
}
w.query();
long endData = System.currentTimeMillis();
System.out.println("Load Data Time in ms = " + String.valueOf(endData-startTime));
w.loadCompete();
long endDataComplete = System.currentTimeMillis();
System.out.println("Load Data Complete Time in ms = " + String.valueOf(endDataComplete-startTime));
w.getTab(0).navigate(0);
// *******************************************************************
// sleep();
System.out.println("** Before Dispose **");
getMemoryUsed();
w.dispose();
// sleep();
//
System.out.println("** Before GC **");
getMemoryUsed();
w = null;
System.gc();
System.out.println("** After GC **");
getMemoryUsed();
System.gc();
System.out.println("** Final **");
long complete = System.currentTimeMillis();
System.out.println("Complete Time in ms = " + String.valueOf(complete-startTime));
long end = getMemoryUsed();
System.out.println("Memory increase in kB = End-Start=" + String.valueOf((end-start)/1024));
listThreads();
//
System.out.println("API Test");
System.out.println("64.72=" + MConversionRate.convert(ctx, new BigDecimal(100.0), 116, 100,0,0));
System.out.println("0.647169=" + MConversionRate.getRate(116, 100, null, 0,0,0));
System.out.println("12.5=" + MUOMConversion.convert(101, 102, new BigDecimal(100.0), true));
} // Base
/**
* Get Used Memory in bytes
* @return memory used
*/
private static long getMemoryUsed()
{
long free = Runtime.getRuntime().freeMemory();
long total = Runtime.getRuntime().totalMemory();
long used = total - free;
//
System.out.println("Memory used in kB = Total("
+ String.valueOf(total/1024) + ")-Free("
+ String.valueOf(free/1024) + ") = " + String.valueOf(used/1024));
System.out.println("Active Threads=" + Thread.activeCount());
return used;
} // getMemoryUsed
/**
* Sleep for a second
*/
private static void sleep()
{
System.out.println(".. sleeping-ini .. -> " + Thread.activeCount());
Thread.yield();
try
{
Thread.sleep(1000);
}
catch (final InterruptedException ie)
{}
System.out.println(".. sleeping-end .. -> " + Thread.activeCount());
} // sleep
/**
* List Threads
*/
private static void listThreads()
{
Thread[] list = new Thread[Thread.activeCount()];
// int no = Thread.currentThread().enumerate(list);
for (int i = 0; i < list.length; i++)
{
if (list[i] != null)
System.out.println("Thread " + i + " - " + list[i].toString());
}
} // listThreads
/**
* Start
* @param args ignored
*/
public static void main(String[] args)
{
Base.test();
Env.exitEnv(0);
} // main
} // Base