Package org.apache.sysds.utils
Class MemoryEstimates
- java.lang.Object
-
- org.apache.sysds.utils.MemoryEstimates
-
public class MemoryEstimates extends Object
Memory Estimates is a helper class containing static classes that estimate the memory requirements of different types of objects in java. All estimates are worst case JVM x86-64bit uncompressed object pointers. This in practice means that the objects are most commonly smaller, for instance the object references are often time. If the memory pressure is low (there is a low number of allocated objects) then object pointers are 4 bits.
-
-
Constructor Summary
Constructors Constructor Description MemoryEstimates()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double
bitSetCost(long length)
Get the worst case memory usage of an java.util.BitSet java object.static double
booleanArrayCost(long length)
Get the worst case memory usage of an array of booleans.static double
byteArrayCost(long length)
Get the worst case memory usage of an array of bytes.static double
charArrayCost(long length)
Get the worst case memory usage of an array of chars.static double
doubleArrayCost(long length)
Get the worst case memory usage of an array of doubles.static double
floatArrayCost(long length)
Get the worst case memory usage of an array of integers.static double
intArrayCost(long length)
Get the worst case memory usage of an array of integers.static double
longArrayCost(long length)
Get the worst case memory usage for an array of longsstatic double
objectArrayCost(long length)
Get the worst case memory usage for an array of objects.static double
stringArrayCost(int length, int avgStringLength)
static double
stringArrayCost(String[] strings)
Get the worst case memory usage of an array containing strings.static long
stringCost(long length)
Get the worst case memory usage of a single string, assuming given length.static long
stringCost(String value)
Get the worst case memory usage of a single string.
-
-
-
Method Detail
-
bitSetCost
public static double bitSetCost(long length)
Get the worst case memory usage of an java.util.BitSet java object.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
booleanArrayCost
public static double booleanArrayCost(long length)
Get the worst case memory usage of an array of booleans. Unfortunately in java booleans are allocated as bytes.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes.
-
byteArrayCost
public static double byteArrayCost(long length)
Get the worst case memory usage of an array of bytes.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
charArrayCost
public static double charArrayCost(long length)
Get the worst case memory usage of an array of chars.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
intArrayCost
public static double intArrayCost(long length)
Get the worst case memory usage of an array of integers.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
floatArrayCost
public static double floatArrayCost(long length)
Get the worst case memory usage of an array of integers.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes.
-
doubleArrayCost
public static final double doubleArrayCost(long length)
Get the worst case memory usage of an array of doubles.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
objectArrayCost
public static final double objectArrayCost(long length)
Get the worst case memory usage for an array of objects. Note this does not take into account each objects allocated variables, just the objects themselves.- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
longArrayCost
public static final double longArrayCost(long length)
Get the worst case memory usage for an array of longs- Parameters:
length
- The length of the array.- Returns:
- The memory estimate in bytes
-
stringArrayCost
public static final double stringArrayCost(String[] strings)
Get the worst case memory usage of an array containing strings. In case anyone is wondering ... strings are expensive.- Parameters:
strings
- The strings array.- Returns:
- The array memory cost
-
stringArrayCost
public static final double stringArrayCost(int length, int avgStringLength)
-
stringCost
public static long stringCost(String value)
Get the worst case memory usage of a single string. In case anyone is wondering ... strings are expensive.- Parameters:
value
- The String to measure- Returns:
- The size in memory.
-
stringCost
public static long stringCost(long length)
Get the worst case memory usage of a single string, assuming given length.- Parameters:
length
- The length of the string- Returns:
- The size in memory
-
-