Go versus Java fastest performance Always look at the source code. If the fastest programs are hand-written vector instructions, does the host language matter? You might be more interested in the less optimised programs — more seconds, less gz source code. fannkuch-redux source secs mem gz cpu secs Go #3 8.25 10,936 969 32.92 Java #3 40.36 39,932 1257 40.43 Java 10.71 40,324 1282 42.25 Java #2 46.85 38,492 514 46.91 Go 11.83 11,128 900 47.26 Go #2 11.89 12,708 896 47.47 n-body source secs mem gz cpu secs Go #3 6.36 11,244 1200 6.37 Go 6.55 11,244 1310 6.56 Java #5 6.77 40,632 1429 6.82 Java #4 6.86 40,516 1489 6.89 Go #2 6.94 11,244 1215 6.95 Java #2 7.32 40,508 1424 7.37 Java #3 7.38 40,492 1430 7.43 Java 7.76 40,724 1430 7.80 spectral-norm source secs mem gz cpu secs Go 5.31 11,244 411 5.32 Go #4 1.42 11,244 548 5.67 Go #2 1.44 11,244 668 5.67 Java #3 1.54 42,324 756 5.93 Java 7.02 41,448 514 7.09 Java #2 2.39 41,092 950 9.25 mandelbrot source secs mem gz cpu secs Go #3 3.73 36,140 894 14.86 Go #4 3.73 36,116 905 14.87 Java #4 4.39 101,236 660 16.12 Java #2 4.11 83,924 796 16.21 Java #6 4.27 84,532 802 16.86 Go 4.92 33,624 823 19.65 Java 25.66 40,860 665 25.73 Go #2 6.76 33,928 837 26.97 Go #6 6.83 33,632 700 27.22 Java #3 7.37 88,056 903 29.24 pidigits source secs mem gz cpu secs Java #3 0.92 38,380 764 0.95 Go #4 1.01 11,244 683 1.02 Go 1.37 11,244 708 1.38 Java #2 1.34 41,352 938 1.42 Go #3 1.63 11,244 603 1.66 Go #2 1.97 11,244 733 2.00 Go #8 2.46 11,244 720 2.46 Go #7 4.80 23,844 696 5.31 Java 7.44 430,616 800 8.45 regex-redux source secs mem gz cpu secs Go #5 4.14 302,280 810 6.25 Java 8.58 767,552 868 16.68 Java #6 5.40 637,728 740 17.08 Java #3 5.45 736,544 929 17.42 Go #4 14.80 360,260 829 34.62 Go #3 27.89 368,528 829 67.15 Go 28.35 317,752 741 67.40 fasta source secs mem gz cpu secs Java #4 3.17 40,400 1524 3.27 Java #6 1.16 46,068 2543 3.65 Go 3.78 11,128 1053 3.78 Java #5 1.23 46,180 2473 3.79 Go #3 1.49 11,136 1358 4.10 Go #2 1.26 11,136 1404 4.26 Java #2 4.32 44,708 1257 4.45 k-nucleotide source secs mem gz cpu secs Java 5.03 361,196 1812 16.40 Java #6 7.17 357,700 1607 25.04 Java #3 7.12 357,568 1635 25.06 Go #7 7.48 166,412 1607 28.68 Go #6 7.96 148,080 1590 29.25 Go #3 8.28 148,412 1722 29.93 Go #4 9.50 142,624 1543 31.55 Java #4 35.38 201,052 1882 35.83 Java #5 18.82 208,376 2219 40.84 reverse-complement source secs mem gz cpu secs Go #2 1.76 814,544 611 1.80 Go #3 1.96 814,352 605 2.00 Go #6 1.33 1,278,596 1338 2.46 Java #6 3.02 2,027,152 752 3.69 Java #5 4.46 1,094,060 1108 4.58 Java #4 5.51 1,886,052 651 5.62 Java #7 24.15 1,032,956 1647 6.20 Go #5 Bad Output Go Failed Java #3 Bad Output Java #8 Bad Output binary-trees source secs mem gz cpu secs Java #4 4.47 2,116,292 840 5.15 Java #6 4.88 2,058,280 529 5.59 Java #3 4.91 2,101,240 540 5.61 Java #2 5.05 2,095,888 552 5.73 Java #7 2.52 1,726,148 835 7.89 Go #6 27.82 410,808 611 28.59 Go #5 14.70 406,544 950 57.87 Go #2 14.69 642,688 666 58.49 Go #3 15.07 342,008 799 58.61 Go #7 33.37 247,824 525 60.85 Go 34.62 236,728 482 61.41 Go go version go1.20 linux/amd64 GOAMD64=v2 Java openjdk 20 2023-03-21 OpenJDK Runtime Environment (build 20+36-2344) OpenJDK 64-Bit Server VM (build build 20+36-2344 mixed mode, sharing) all Go programs & measurements all Java programs & measurements