/*
*
* Copyright 2014 http://Bither.net
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* /
*/
package net.bither.utils;
import net.bither.bitherj.utils.Utils;
/**
* Created by nn on 15/5/4.
*/
public class SystemUtil {
public static long maxUsed = 0;
public static void maxUsedSize() {
Runtime runtime = Runtime.getRuntime();
long total = runtime.totalMemory();
long free = runtime.freeMemory();
long used = total - free;
if (used > maxUsed) {
maxUsed = used;
runtime.runFinalization();
runtime.gc();
LogUtil.printlnOut("maxUsed:" + Math.round(maxUsed / 1e3));
}
}
public static void callSystemGC() {
Runtime runtime = Runtime.getRuntime();
long total = runtime.totalMemory();
long free = runtime.freeMemory();
long max = runtime.maxMemory();
long used = total - free;
LogUtil.printlnOut(" " + Math.round(used / 1e3) + " KB used before GC,total :" + Math.round(total / 1e3) + ",free:" + Math.round(free / 1e3));
runtime.runFinalization();
runtime.gc();
runtime = Runtime.getRuntime();
total = runtime.totalMemory();
free = runtime.freeMemory();
max = runtime.maxMemory();
used = total - free;
LogUtil.printlnOut(Math.round(used / 1e3) + " KB used after GC,total :" + Math.round(total / 1e3) + ",free:" + Math.round(free / 1e3));
}
public static int getAvailableProcessors() {
return Runtime.getRuntime().availableProcessors();
}
public static boolean isSystem32() {
return Utils.compareString("32", System.getProperty("sun.arch.data.model"));
}
}