Skip to content
Graph docs0.5

AGE and Neo4j standalone benchmarks

Latest stable Based on Graph release 0.5.1

The standalone projects measure the same small vertex/traversal shape through different drivers: AGE uses PostgreSQL JDBC, HikariCP, Exposed, and an AGE Testcontainer; Neo4j uses the Java driver and a Neo4j Testcontainer. Sources: AGE state, Neo4j state, and wrapper.

Prerequisites: JDK 21, Docker, release commit 3e0fa7cb9e3bc70c2743aeebda2487f3e45e4907, and no concurrent container benchmark.

Terminal window
./gradlew :graph-age-benchmark:benchmark --rerun-tasks --console=plain
./gradlew :graph-neo4j-benchmark:benchmark --rerun-tasks --console=plain
scripts/benchmark-neo4j-age.sh

Each Gradle project configures 3 warmups, 5 measurements, 3 seconds per iteration, JSON format, and the harness default fork count. Reports are under benchmark/graph-{age,neo4j}-benchmark/build/reports/benchmarks/main/. The wrapper normalizes source units to us/op and emits one JSON object on the final stdout line. Lower latency is better.

No standalone 0.5.1 result file is committed for a controlled head-to-head run, so this page invents no number. Reproduce both serially on the same idle host and retain both raw reports plus the wrapper summary. The shared committed small backend run is representative evidence only when its exact conditions are kept.

Compare only matching operation, parameters, unit, warmup, iterations, fork, fixture, and host. An arithmetic mean across unlike operations is a transport summary, not a backend ranking. Teardown must close operations, JDBC pool/driver, and container. After cancellation, remove only containers created by the run after identifying them.

Container startup failure, AGE extension initialization failure, Bolt readiness failure, or missing JSON is a failed run, not a score. These benchmarks do not prove PostgreSQL consolidation value, Neo4j operational maturity, HA, recovery, cloud network cost, or production query plans. Read AGE backend, Neo4j/Memgraph, and overview.

These diagrams are loaded directly from README assets published with the 0.5.1 release and pinned to its immutable commit. They describe this manual’s released structure and runtime flows, not later Snapshot changes. Select a preview to open the SVG at the same release commit.

graph-age-benchmark Architecture diagram

Release README: benchmark/graph-age-benchmark/README.md

graph-neo4j-benchmark Architecture diagram

Section titled “graph-neo4j-benchmark Architecture diagram”

graph-neo4j-benchmark Architecture diagram

Release README: benchmark/graph-neo4j-benchmark/README.md