From 969dc7626b16445d95477ff3fb08bc999ec98a32 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Wed, 9 Apr 2014 07:12:20 +1000 Subject: [PATCH] doc/go1.3.html: Performance, plus some library details LGTM=dvyukov, iant, rsc R=golang-codereviews, dvyukov, iant, rsc CC=golang-codereviews https://golang.org/cl/85250043 --- doc/go1.3.html | 120 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 96 insertions(+), 24 deletions(-) diff --git a/doc/go1.3.html b/doc/go1.3.html index ce5860d15c..ffcea97286 100644 --- a/doc/go1.3.html +++ b/doc/go1.3.html @@ -92,6 +92,8 @@ liveness (TODO what to say)

TODO compiler/linker boundary moved + +TODO: liblink: pull linker i/o into separate liblink C library (CL 35790044)

@@ -124,29 +126,48 @@ cmd/go: cover -atomic for -race (CL 76370043)

Performance

-TODO +The performance of Go binaries for this release has improved in many cases due to changes +in the runtime and garbage collection, plus some changes to libraries. +Significant instances include:

+
  • +The runtime handles defers more efficiently, reducing the memory footprint by about two kilobytes +per goroutine that calls defer. +
  • -

    Changes to the standard library

    +
  • +The garbage collector has been sped up, using a concurrent sweep algorithm, +better parallelization, and larger pages. +The cumulative effect can be a 50-70% reduction in collector pause time. +
  • -

    -TODO: Which should be called out? -

    +
  • +The race detector (see this guide) +is now about 40% faster. +
  • + +
  • +The regular expression package regexp +is now significantly faster for certain simple expressions due to the implemenation of +a second, one-pass execution engine. The choice of which engine to use is automatic; +the details are hidden from the user. +
  • + +

    -There is an important new type added to the standard library: sync/pool. -TODO: sync: add Pool (CL 41860043, 46010043) +Also, the runtime now includes in stack dumps how long a goroutine has been blocked, +which can be useful information when debugging deadlocks or performance issues.

    - +

    Changes to the standard library

    New packages

    @@ -154,6 +175,19 @@ TODO: sync: add Pool (CL 41860043, 46010043) No new packages appear in the core libraries in Go 1.3.

    +

    Major changes to the library

    + +

    +There is an important new type added to the standard library: sync.Pool. +It provides an efficient mechanism for implementing certain types of caches whose memory +can be reclaimed automatically by the system. +

    + +

    +TODO: crypto/tls: ServerName or InsecureSkipVerify (CL 67010043) +possible breaking change +

    +

    Minor changes to the library

    @@ -163,34 +197,72 @@ See the relevant package documentation for more information about each change.

    -- 2.50.0