package hu.bme.mit.incquery.cep.performance.size;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
import hu.bme.mit.incquery.cep.metamodels.cep.IEventSource;
import hu.bme.mit.incquery.cep.performance.events.ComponentA_Event;
import hu.bme.mit.incquery.cep.performance.events.ComponentB_Event;
import hu.bme.mit.incquery.cep.performance.events.ComponentC_Event;
import hu.bme.mit.incquery.cep.performance.patterns.atomic.ComponentA_Pattern;
import hu.bme.mit.incquery.cep.performance.patterns.atomic.ComponentB_Pattern;
import hu.bme.mit.incquery.cep.performance.patterns.atomic.ComponentC_Pattern;
import hu.bme.mit.incquery.cep.performance.patterns.complex.CompoundTransactionEvent1_Pattern;
public class ObjectSizeTester {
public static void main(String[] args) {
// System.out.println(Runtime.getRuntime().maxMemory());
//
// ObjectSizeTester t =new ObjectSizeTester();
// System.out.println(t.getmem());
int i = 10;
MyEventSource source = new MyEventSource();
ComponentA_Event componentA_Event = new ComponentA_Event(source);
componentA_Event.getParameters().add(new ComponentB_Event(null));
Object o2 = new ComponentB_Event(null);
Object o3 = new ComponentC_Event(null);
Object p = new ComponentA_Pattern();
Object p2 = new ComponentB_Pattern();
Object p3 = new ComponentC_Pattern();
Object p4 = new CompoundTransactionEvent1_Pattern();
while(true){}
// System.out.println(t.getmem());
// System.out.println(ObjectSizeFetcher.getObjectSize(new ComponentA_Event(null)));
}
public long getmem() {
collectGarbage();
long totalMemory = Runtime.getRuntime().totalMemory();
collectGarbage();
long freeMemory = Runtime.getRuntime().freeMemory();
return (totalMemory - freeMemory);
}
@SuppressWarnings("static-access")
private void collectGarbage() {
try {
System.gc();
Thread.currentThread().sleep(100);
System.runFinalization();
Thread.currentThread().sleep(100);
}
catch (InterruptedException ex){
ex.printStackTrace();
}
}
}