go net / http包速度在OSX和Linux之间有所不同

时间:2015-11-19 05:22:02

标签: linux macos

发现使用net / http包的响应时间在OSX和Linux之间是不同的。 OSX基本上比Linux慢。特别是当我调用内部域访问时,结果非常显着。 OSX的速度超过10倍......它可能来自go编译,但不确定。任何人都知道为什么会出现这种差异?

  • OSX:10.11
  • Linux:centos-7.0-64,它在mac的VM上运行

main.go

package main

import (
    "log"
    "net/http"
    "time"
)

func main() {
    url := "http://yahoo.co.jp"

    start := time.Now()
    resp, _ := http.Get(url)
    log.Println(time.Since(start))
    defer resp.Body.Close()

}

结果(avarage)
- OSX:233.662409ms
- Linux:147.108599ms

1 个答案:

答案 0 :(得分:0)

内部VIP访问速度慢了10倍,所以我没说。我尝试与其他客户端做curl和ruby,发现OSX的time_namelookup非常慢。所以,它不是语言,而是像mac上的功能问题一样的DNS缓存。我会寻找细节。谢谢你的信息!

go version:1.5.1 darwin / amd64