| |   |
| 21 | 21 | package org.jnode.command.system; |
| 22 | 22 | |
| 23 | 23 | import java.io.PrintWriter; |
| import java.util.ArrayList; |
| 24 | 25 | |
| 25 | 26 | import org.jnode.shell.AbstractCommand; |
| 26 | 27 | import org.jnode.shell.syntax.Argument; |
| 27 | 28 | import org.jnode.shell.syntax.EnumArgument; |
| 28 | 29 | import org.jnode.shell.syntax.FlagArgument; |
| import org.jnode.shell.syntax.IntegerArgument; |
| 29 | 31 | import org.jnode.shell.syntax.StringArgument; |
| 30 | 32 | import org.jnode.util.NumberUtils; |
| 31 | 33 | import org.jnode.vm.Vm; |
| … | … | |
| 87 | 87 | private final StringArgument argMajorGc; |
| 88 | 88 | private final StringArgument argMinorGc; |
| 89 | 89 | private final StringArgument argSweep; |
| private final FlagArgument argAlloc; |
| private final IntegerArgument argAllocNbObjects; |
| 90 | 92 | |
| 91 | 93 | private final PrintWriter out = getOutput().getPrintWriter(); |
| 92 | 94 | |
| … | … | |
| 101 | 101 | argMajorGc = new StringArgument("major", Argument.OPTIONAL); |
| 102 | 102 | argMinorGc = new StringArgument("major", Argument.OPTIONAL); |
| 103 | 103 | argSweep = new StringArgument("major", Argument.OPTIONAL); |
| argAlloc = new FlagArgument("show", Argument.OPTIONAL, help_show); |
| argAllocNbObjects = new IntegerArgument("show", Argument.OPTIONAL, help_show); |
| 104 | 106 | registerArguments(argDebugFlags, argClear, argSet, argShow, argMajorGc, argMinorGc, |
| argSweep); |
| argSweep, argAlloc, argAllocNbObjects); |
| 106 | 108 | } |
| 107 | 109 | |
| 108 | 110 | public static void main(String[] args) throws Exception { |
| … | … | |
| 123 | 123 | Vm.getHeapManager().setHeapFlags(flags); |
| 124 | 124 | } else if (argShow.isSet()) { |
| 125 | 125 | showFlags(Vm.getHeapManager().getHeapFlags(), out); |
| } else { |
| } else if (argAlloc.isSet() && argAllocNbObjects.isSet()) { |
| allocObjects(argAllocNbObjects.getValue()); |
| }else { |
| 127 | 129 | final Runtime rt = Runtime.getRuntime(); |
| 128 | 130 | out.format(fmt_out, str_mem_size, NumberUtils.toBinaryByte(rt.totalMemory())); |
| 129 | 131 | out.format(fmt_out, str_mem_free, NumberUtils.toBinaryByte(rt.freeMemory())); |
| … | … | |
| 152 | 152 | } |
| 153 | 153 | } |
| 154 | 154 | |
| private void gc() { |
| private void allocObjects(Integer nbObjectsToAllocate) { |
| int listSize = 42; |
| ArrayList<Object> l = null; |
| for (int i = 0; i < nbObjectsToAllocate; i++) { |
| l = new ArrayList<Object>(listSize); |
| for (int j = 0; j < listSize; j++) { |
| l.add(new Object()); |
| } |
| } |
| } |
|
| private void gc() { |
| 156 | 167 | minorGc(); |
| 157 | 168 | majorGc(); |
| 158 | 169 | sweep(); |