title: golang slice allocation performance
body: <p>I stumbled upon an interesting thing while checking performance of memory allocation in GO.</p>
  
  <pre><code>package main
  
  import (
        "fmt"
        "time"
      )
  
  func main(){
     const alloc int = 65536
     now := time.Now()
     loop := 50000
     for i := 0; i&lt;loop;i++{
        sl := make([]byte, alloc)
        i += len(sl) * 0
     }
     elpased := time.Since(now)
     fmt.Printf("took %s to allocate %d bytes %d times", elpased, alloc, loop) 
  }
  </code></pre>
  
  <p>I am running this on a Core-i7 2600 with go version 1.6 64bit (also same results on 32bit) and 16GB of RAM (on WINDOWS 10)
  so when alloc is 65536 (exactly 64K) it runs for 30 seconds (!!!!).
  When  alloc is 65535 it takes ~200ms.
  Can someone explain this to me please? 
  I tried the same code at home with my core i7-920 @ 3.8GHZ but it didn't show same results (both took around 200ms). Anyone has an idea what's going on?</p>