Class GraphMemFast

All Implemented Interfaces:
org.apache.jena.atlas.lib.Copyable<GraphMem>, Graph, GraphWithPerform

public class GraphMemFast extends GraphMem
A graph that stores triples in memory. This class is not thread-safe.

Purpose: GraphMem2Fast is a strong candidate for becoming the new default in-memory graph in the upcoming Jena 5, thanks to its improved performance and relatively minor increase in memory usage.

Faster than GraphMemLegacy (specially Graph#add, Graph#find and Graph#stream) Removing triples is a bit slower than GraphMemLegacy. Memory consumption is about 6-35% higher than GraphMemLegacy Maps and sets are based on FastHashBase Benefits from multiple small optimizations. (see: FastTripleStore)

The heritage of GraphMem:

  • Also uses 3 hash-maps indexed by subjects, predicates, and objects
  • Values of the maps also switch from arrays to hash sets for the triples
  • Constructor Details

    • GraphMemFast

      public GraphMemFast()
  • Method Details

    • copy

      public GraphMemFast copy()
      Description copied from class: GraphMem
      Creates a copy of this graph. Since the triples and nodes are immutable, the copy contains the same triples and nodes as this graph. Modifications to the copy will not affect this graph.
      Specified by:
      copy in interface org.apache.jena.atlas.lib.Copyable<GraphMem>
      Overrides:
      copy in class GraphMem
      Returns:
      independent copy of the current graph