我正在构建一个测试爬虫,并想知道Go(golang)是否缓存DNS查询.我没有在dnsclient中看到有关缓存的任何信息.这似乎是添加到任何爬虫以防止大量额外DNS查询的重要事情.
Go(1.4+)是否缓存DNS查找?
如果没有,debian/ubuntu/linux,windows或darwin/OSX是否在网络级别进行任何缓存从中受益?
我的目的是在golang程序中设置ulimit -n,这样我就不必在全局范围内设置它,而是在程序中限制它.
找到systemcalls setrlimit并获得相同的rlimit.(http://linux.die.net/man/2/setrlimit)
但是当我尝试同样的示例程序时,我在设置值时收到错误说无效参数.
package main
import (
"fmt"
"syscall"
)
func main() {
var rLimit syscall.Rlimit
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
if err != nil {
fmt.Println("Error Getting Rlimit ", err)
}
fmt.Println(rLimit)
rLimit.Max = 999999
rLimit.Cur = 999999
err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
if err != nil {
fmt.Println("Error Setting Rlimit ", err)
}
err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
if err != nil {
fmt.Println("Error Getting Rlimit ", err)
}
fmt.Println("Rlimit Final", rLimit)
}
Run Code Online (Sandbox Code Playgroud)
获得的输出是:
george@george-Not-Specified ~/work/odesk/progium/trial $ …Run Code Online (Sandbox Code Playgroud)