Class NativeMap

  • All Implemented Interfaces:
    Iterable<Map.Entry<Key,​Value>>

    public class NativeMap
    extends Object
    implements Iterable<Map.Entry<Key,​Value>>
    This class stores data in a C++ map. Doing this allows us to store more in memory and avoid pauses caused by Java GC. The strategy for dealing with native memory allocated for the native map is that java code using the native map should call delete() as soon as it is finished using the native map. When the NativeMap object is garbage collected its native resources will be released if needed. However waiting for java GC would be a mistake for long lived NativeMaps. Long lived objects are not garbage collected quickly, therefore a process could easily use too much memory.
    • Constructor Detail

      • NativeMap

        public NativeMap()
    • Method Detail

      • loadNativeLib

        public static void loadNativeLib​(List<File> searchPath)
        If native libraries are not loaded, the specified search path will be used to attempt to load them. Directories will be searched by using the system-specific library naming conventions. A path directly to a file can also be provided. Loading will continue until the search path is exhausted, or until the native libraries are found and successfully loaded, whichever occurs first.
        Parameters:
        searchPath - a list of files and directories to search
      • isLoaded

        public static boolean isLoaded()
        Check if native libraries are loaded.
        Returns:
        true if they are loaded; false otherwise
      • put

        public void put​(Key key,
                        Value value)
      • size

        public int size()
      • getMemoryUsed

        public long getMemoryUsed()
      • delete

        public void delete()