Neo St Petersburg Competence Center (SPCC) has released the results of its latest round of benchmark testing for the C# and Go Neo3 node clients, showing speed improvements of up to 10x from Neo2. The tests compared transaction throughput, memory, and CPU usage under different conditions, showing significant improvements for the Neo3 nodes over their Neo2 counterparts.
First revealed at the start of the year, neo-bench is a toolkit for comparing different Neo node implementations and their performance. In the original announcement, Neo SPCC included preliminary results comparing the Neo2 Go and C# nodes. In the time since then, the team has adapted the toolkit to work with Neo3, demonstrating significant performance improvements for both implementations.
In tests with four consensus nodes and 30 worker threads constantly sending transactions, NeoGo improved its average TPS from 343 tx/s to 717 tx/s between the Neo2 and Neo3 versions. The core C# node showed an even more significant improvement, improving from 35 tx/s on Neo2 to 378 tx/s in the Neo3 architecture.
Further, these increases are made even more significant by the changes to test methodology between the Neo2 and Neo3 test rounds. For the Neo2 benchmarks, every transaction was a simple PUSH1 script, whereas the Neo3 test runs were performed with real NEP-5 transfers, though only through a single account at this time.
Additionally, though the Go node does exhibit higher raw performance, memory consumption and large variations in block production time show that it currently is not as stable as the reference implementation. The tests also showed specific areas where the C# node stands to improve, with results demonstrating CPU underutilization and inefficiencies in the current RPC module.
Neo SPCC has noted that further updates to the neo-bench tool will be made over time, and that it expects further improvements to the numbers as Neo3 continues to develop.
The full results from Neo SPCC can be read here. Users interested in experimenting with the tool or running node benchmarks for themselves can find the source code at the following link: