package fr.unistra.pelican.util;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferByte;
import java.awt.image.PixelInterleavedSampleModel;
import java.awt.image.Raster;
import java.awt.image.SampleModel;
import java.util.Vector;
import javax.media.jai.PlanarImage;
import javax.media.jai.RasterFactory;
import javax.media.jai.TiledImage;
import fr.unistra.pelican.ByteImage;
import fr.unistra.pelican.Image;
import fr.unistra.pelican.algorithms.conversion.AverageChannels;
import fr.unistra.pelican.algorithms.conversion.GrayToRGB;
/**
*
* Class containing various memory-related static tools. Warning: these methods
* are accurate only if JVM is launch with -Xmx -Xms options
*
*
* @author Lefevre
*/
public class Memory {
public static long maxMemory() {
return Runtime.getRuntime().maxMemory();
}
public static long totalMemory() {
return Runtime.getRuntime().totalMemory();
}
public static long freeMemory() {
return Runtime.getRuntime().freeMemory();
}
public static long totalFreeMemory() {
Runtime runtime = Runtime.getRuntime();
long maxMemory = runtime.maxMemory();
long allocatedMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
return (freeMemory + (maxMemory - allocatedMemory));
}
public static long totalUsedMemory() {
Runtime runtime = Runtime.getRuntime();
long maxMemory = runtime.maxMemory();
long freeMemory = runtime.freeMemory();
return (maxMemory - freeMemory);
}
public static double totalFreeMemoryKB() {
return totalFreeMemory() / 1024.0;
}
public static double totalFreeMemoryMB() {
return totalFreeMemoryKB() / 1024.0;
}
public static double totalFreeMemoryGB() {
return totalFreeMemoryMB() / 1024.0;
}
public static double totalUsedMemoryKB() {
return totalUsedMemory() / 1024.0;
}
public static double totalUsedMemoryMB() {
return totalUsedMemoryKB() / 1024.0;
}
public static double totalUsedMemoryGB() {
return totalUsedMemoryMB() / 1024.0;
}
}