언어 디자인 측면에서 Go를 일반적으로 Java보다 느리게 만드는 것은 없습니다. 실제로 데이터 구조의 메모리 레이아웃을보다 강력하게 제어 할 수 있으므로 많은 일반적인 작업의 경우 다소 빠릅니다. 그러나 현재 기본 Go 컴파일러, 스케줄러, 가비지 수집기, 정규식 라이브러리 및 기타 많은 것들이 특별히 최적화되지 않았습니다. 이것은 꾸준히 개선되고 있지만, 마이크로 벤치 마크에서 우승하는 것보다 유용하고, 단순하며, 빠르다는 데 초점이 맞춰져 있습니다.
연결된 벤치 마크에서 Go는 이진 트리 및 정규식 테스트에서 Java를 크게 잃습니다. 그것들은 각각 메모리 관리 시스템과 regexp 라이브러리의 테스트입니다. Go의 메모리 관리는 더 빨라질 수 있으며 시간이 지남에 따라 확실히 개선 될 것입니다. 현재 표준 정규 표현식 라이브러리는 곧 더 나은 구현을위한 자리 표시 자입니다. 따라서이 두 가지를 잃는 것은 놀라운 일이 아니며 가까운 시일 내에 마진이 더 좁아 져야합니다.
k- 뉴클레오티드 벤치 마크의 경우 Java 코드가 다른 알고리즘을 사용하고 있기 때문에 비교하기가 다소 어렵습니다. Go 코드는 확실히 작성된대로 컴파일러, 스케줄러 및 할당 자 개선 기능을 통해 이점을 얻을 수 있지만 더 정확하게 비교하려면 누군가가 Go 코드를 다시 작성하여 더 영리한 작업을 수행해야합니다.
Java는 부동 소수점 산술 및 루프이기 때문에 mandelbrot 벤치 마크에서 승리합니다. 이는 JVM이 런타임에 정말 좋은 기계 코드를 생성하고 물건을 호이스트하기에 좋은 장소입니다. Go는 비교할 때 현재 매우 인상적인 머신 코드를 끌어 올리거나 풀거나 생성하지 않는 매우 간단한 컴파일러를 가지고 있으므로 잃어버린 것은 놀라운 일이 아닙니다. 그러나 Java 타이밍은 JVM 시작 시간을 계산하지 않거나 JVM이 JIT를 멋지게 JIT하기 위해 실행해야하는 횟수를 계산해야합니다. 장기 실행 프로그램의 경우에는 관련이 없지만 경우에 따라 중요합니다.
나머지 벤치 마크와 관련하여 Java와 Go는 기본적으로 넥-인-넥 (neck-in-neck)이며, Go는 메모리와 코드를 줄입니다. 따라서 많은 테스트에서 Go가 Java보다 느리지 만 Java는 매우 빠르며 Go는 비교에서 꽤 잘 수행되며 가까운 시일 내에 Go가 현저히 빨라질 것입니다.
gccgo (gcc codegen을 사용하는 Go 컴파일러)가 성숙 할 때 기대하고 있습니다. 많은 유형의 코드에 대해 C와 거의 일치해야합니다.