private static void printMemoryUsage(final String phaseName, final FunctionNode functionNode) { LOG.info(phaseName + " finished. Doing IR size calculation..."); final ObjectSizeCalculator osc = new ObjectSizeCalculator(ObjectSizeCalculator.getEffectiveMemoryLayoutSpecification()); osc.calculateObjectSize(functionNode); final List<ClassHistogramElement> list = osc.getClassHistogram(); final StringBuilder sb = new StringBuilder(); final long totalSize = osc.calculateObjectSize(functionNode); sb.append(phaseName).append(" Total size = ").append(totalSize / 1024 / 1024).append("MB"); LOG.info(sb); Collections.sort(list, new Comparator<ClassHistogramElement>() { @Override public int compare(ClassHistogramElement o1, ClassHistogramElement o2) { final long diff = o1.getBytes() - o2.getBytes(); if (diff < 0) { return 1; } else if (diff > 0) { return -1; } else { return 0; } } }); for (final ClassHistogramElement e : list) { final String line = String.format(" %-48s %10d bytes (%8d instances)", e.getClazz(), e.getBytes(), e.getInstances()); LOG.info(line); if (e.getBytes() < totalSize / 200) { LOG.info(" ..."); break; // never mind, so little memory anyway } } }
private void printMemoryUsage(final FunctionNode functionNode, final String phaseName) { if (!log.isEnabled()) { return; } log.info(phaseName, "finished. Doing IR size calculation..."); final ObjectSizeCalculator osc = new ObjectSizeCalculator(ObjectSizeCalculator.getEffectiveMemoryLayoutSpecification()); osc.calculateObjectSize(functionNode); final List<ClassHistogramElement> list = osc.getClassHistogram(); final StringBuilder sb = new StringBuilder(); final long totalSize = osc.calculateObjectSize(functionNode); sb.append(phaseName). append(" Total size = "). append(totalSize / 1024 / 1024). append("MB"); log.info(sb); Collections.sort(list, new Comparator<ClassHistogramElement>() { @Override public int compare(final ClassHistogramElement o1, final ClassHistogramElement o2) { final long diff = o1.getBytes() - o2.getBytes(); if (diff < 0) { return 1; } else if (diff > 0) { return -1; } else { return 0; } } }); for (final ClassHistogramElement e : list) { final String line = String.format(" %-48s %10d bytes (%8d instances)", e.getClazz(), e.getBytes(), e.getInstances()); log.info(line); if (e.getBytes() < totalSize / 200) { log.info(" ..."); break; // never mind, so little memory anyway } } }
public appl9() throws Exception{ ObjectSizeCalculator obj; JCL_IoTfacade iot = JCL_IoTFacadeImpl.getInstance(); int numMaxRegistro = 1000; int delay = 1000; Device smartphone = iot.<Device>getIoTDevices().get(0); iot.setSensorMetadata(smartphone, "TYPE_LIGHT", Constants.IoT.TYPE_LIGHT, numMaxRegistro, delay, Constants.IoT.INPUT, Constants.IoT.GENERIC); Sensor light = iot.<Sensor>getSensorByName(smartphone, "TYPE_LIGHT").get(0); String ctxName = "myContext"; iot.registerMQTTContext(smartphone, light, new JCL_Expression("S0<100"), ctxName+"1"); iot.registerContext(smartphone, light, new JCL_Expression("S0<100"), ctxName); JCL_IoTfacade.PacuHPC.register(UserServices.class, "userServices"); Future<JCL_result> res = iot.addContextAction(ctxName, false, "userServices", "IoTActionTask", null); res.get(); JCL_IoTfacade.PacuHPC.destroy(); }