1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.util;
17
18 import org.apache.commons.io.FileUtils;
19 import org.codelibs.core.lang.StringUtil;
20
21 public final class MemoryUtil {
22 private MemoryUtil() {
23 }
24
25 public static String getMemoryUsageLog() {
26 final Runtime runtime = Runtime.getRuntime();
27 final long freeBytes = runtime.freeMemory();
28 final long maxBytes = runtime.maxMemory();
29 final long totalBytes = runtime.totalMemory();
30 final long usedBytes = totalBytes - freeBytes;
31 return "Mem:{used " + byteCountToDisplaySize(usedBytes) + ", heap " + byteCountToDisplaySize(totalBytes) + ", max "
32 + byteCountToDisplaySize(maxBytes) + "}";
33 }
34
35 public static String byteCountToDisplaySize(final long size) {
36 return FileUtils.byteCountToDisplaySize(size).replace(" ", StringUtil.EMPTY);
37 }
38
39 public static long getUsedMemory() {
40 final Runtime runtime = Runtime.getRuntime();
41 final long freeBytes = runtime.freeMemory();
42 final long totalBytes = runtime.totalMemory();
43 return totalBytes - freeBytes;
44 }
45 }