diff options
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/nativec/MallInfo.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/nativec/MallInfo.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/nativec/MallInfo.java b/vespajlib/src/main/java/com/yahoo/nativec/MallInfo.java index a4f5486ccf1..eda6c7d1af7 100644 --- a/vespajlib/src/main/java/com/yahoo/nativec/MallInfo.java +++ b/vespajlib/src/main/java/com/yahoo/nativec/MallInfo.java @@ -2,7 +2,12 @@ package com.yahoo.nativec; import com.sun.jna.Structure; -public class MallInfo { +/** + * Gives access to the information provided by the C library mallinfo() function. + * + * @author baldersheim + */ +public class MallInfo extends NativeHeap { private final static Throwable initException = NativeC.loadLibrary(MallInfo.class); public static Throwable init() { return initException; @@ -23,8 +28,27 @@ public class MallInfo { public int keepcost; /* Top-most, releasable space (bytes) */ } private static native MallInfoStruct.ByValue mallinfo(); + + private final MallInfoStruct mallinfo; public MallInfo() { mallinfo = mallinfo(); } - private final MallInfoStruct mallinfo; + + @Override + public long usedSize() { + long v = mallinfo.uordblks; + return v << 20; // Due to too few bits in ancient mallinfo vespamalloc reports in 1M units + } + + @Override + public long totalSize() { + long v = mallinfo.arena; + return v << 20; // Due to too few bits in ancient mallinfo vespamalloc reports in 1M units + } + + @Override + public long availableSize() { + long v = mallinfo.fordblks; + return v << 20; // Due to too few bits in ancient mallinfo vespamalloc reports in 1M units + } } |