diff options
author | Andrew Gerrand <adg@golang.org> | 2010-04-21 14:00:56 +1000 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2010-04-21 14:00:56 +1000 |
commit | 54277f3a867aafac2c56be518cc09fa966bc9dd8 (patch) | |
tree | 1659d721182bc28d16a4c2d8e8854cf4584f7ea1 | |
parent | 35c183cd73760f82f534b657a8a87c520abd4b28 (diff) | |
download | golang-54277f3a867aafac2c56be518cc09fa966bc9dd8.tar.gz |
go_faq: add question: Why does Go perform badly on benchmark X?
R=r, cw
CC=golang-dev
http://codereview.appspot.com/895043
Committer: Andrew Gerrand <adg@golang.org>
-rw-r--r-- | doc/go_faq.html | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/doc/go_faq.html b/doc/go_faq.html index 0961ae9de..044518806 100644 --- a/doc/go_faq.html +++ b/doc/go_faq.html @@ -162,7 +162,7 @@ Can I translate the Go home page into another language?</h3> <p> Absolutely. We encourage developers to make Go Language sites in their own languages. -However, if choose to add the Google logo or branding to your site +However, if you choose to add the Google logo or branding to your site (it does not appear on <a href="http://golang.org/">golang.org</a>), you will need to abide by the guidelines at <a href="http://www.google.com/permissions/guidelines.html">http://www.google.com/permissions/guidelines.html</a> @@ -334,3 +334,37 @@ compiled with a version of the Plan 9 C compiler that supports segmented stacks for goroutines. Work is underway to provide the same stack management in <code>gccgo</code>. + +<h2 id="Performance">Performance</h2> + +<h3 id="Why_does_Go_perform_badly_on_benchmark_x"> +Why does Go perform badly on benchmark X?</h3> + +<p> +One of Go's design goals is to approach the performance of C for comparable +programs, yet on some benchmarks it does quite poorly, including several +in <a href="/test/bench/">test/bench</a>. The slowest depend on libraries +for which versions of comparable performance are not available in Go. +For instance, pidigits depends on a multi-precision math package, and the C +versions, unlike Go's, use <a href="http://gmplib.org/">GMP</a> (which is +written in optimized assembler). +Benchmarks that depend on regular expressions (regex-dna, for instance) are +essentially comparing Go's stopgap <a href="/pkg/regexp">regexp package</a> to +mature, highly optimized regular expression libraries like PCRE. +</p> + +<p> +Benchmark games are won by extensive tuning and the Go versions of most +of the benchmarks need attention. If you measure comparable C +and Go programs (reverse-complement is one example), you'll see the two +languages are much closer in raw performance than this suite would +indicate. +</p> + +<p> +Still, there is room for improvement. The compilers are good but could be +better, many librarise need major performance work, and the garbage collector +isn't fast enough yet (even if it were, taking care not to generate unnecessary +garbage can have a huge effect). +</p> + |