Graph4J -- A computationally efficient Java library for graph algorithms
Cristian Fr\u{a}sinaru, Emanuel Florentin Olariu

TL;DR
Graph4J is a new Java library that uses array-based graph representations to significantly improve memory efficiency and algorithm performance compared to existing Java graph libraries.
Contribution
It introduces a lower-level, array-based graph model in Java, reducing memory usage and increasing speed over object-oriented approaches in existing libraries.
Findings
Graph4J reduces memory consumption compared to JGraphT, JUNG, and Guava Graph.
It achieves faster algorithm execution times in benchmark tests.
The library significantly outperforms existing Java graph libraries in various graph operations.
Abstract
Graph algorithms play an important role in many computer science areas. In order to solve problems that can be modeled using graphs, it is necessary to use a data structure that can represent those graphs in an efficient manner. On top of this, an infrastructure should be build that will assist in implementing common algorithms or developing specialized ones. Here, a new Java library is introduced, called Graph4J, that uses a different approach when compared to existing, well-known Java libraries such as JGraphT, JUNG and Guava Graph. Instead of using object-oriented data structures for graph representation, a lower-level model based on arrays of primitive values is utilized, that drastically reduces the required memory and the running times of the algorithm implementations. The design of the library, the space complexity of the graph structures and the time complexity of the most…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsGraph Theory and Algorithms · Model-Driven Software Engineering Techniques · Advanced Software Engineering Methodologies
