Hi all, I thought this might be of interest to some. I released a Java version of keydb <https://github.com/robaho/keydb> at jkeydb <https://github.com/robaho/jkeydb>. I primarily did the exercise to keep my Java skills fresh and do an updated performance comparison between Go and Java.
Tests performed using OSX Big Sur. Using Go 1.15.5: insert time 10000000 records = 24670 ms, usec per op 2.4670965 close time 16945 ms scan time 10631 ms, usec per op 1.063149 scan time 50% 470 ms, usec per op 0.941686 random access time 9.658001 us per get close with merge 1 time 0.681 ms scan time 11253 ms, usec per op 1.1253718 scan time 50% 471 ms, usec per op 0.942876 random access time 9.702651 us per get Using Java 1.15: insert time 10000000 records = 24102ms, usec per op 2.4102 close time 13564ms scan time 10259ms, usec per op 1.0259 scan time 50% 474ms, usec per op 0.948 random access time 13.209us per get close with merge 1 time 0ms scan time 10142ms, usec per op 1.0142 scan time 50% 501ms, usec per op 1.002 random access time 13.28us per get Performance is very similar, except that Go is significantly faster in the random access tests. I attribute this to the JNI overhead in making lots of small IO requests. In a previous life I wrote some custom JNI code for ultrafast IO and I might resurrect that to see if it makes a difference. You can vary the ‘keyIndexInterval’ to trade memory for speed which significantly helps the Java version by reducing the IO. There are significantly fewer source (non test) code files in the Go version, 10 vs. 26 which highlights the simplicity of Go. Anyway, feel free to ask any questions if you wish. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/41884773-5673-47C5-87EB-5B09C4958847%40ix.netcom.com.