草庐IT

可用cpu

全部标签

go - 在编译时检查 go 表达式的可用性

我正在为Go编写一个(业余)编译器。现在为了优化我想知道:有没有办法检查ast.Expr中的数据是否可以在编译时访问?我知道我可以解析为ast.*Lit。 最佳答案 目标代码是编译过程的结果。Inageneralsenseobjectcodeisasequenceofstatementsorinstructionsinacomputerlanguage,usuallyamachinecodelanguage(i.e.,binary).在编译完成之前,什么都不能访问。 关于go-在编译时检

json - 关于 CPU 缓存或 GC 或任何其他不确定的问题

我正在为golang编写任意JSON解析器,该项目即将完成。但是我发现了一个关于性能的令人困惑的问题:我想测试解析一个大(100Mb)JSON字符串的性能,我使用测试文件本身在内存中初始化JSON结构并将编码的JSON字符串写入文件,然后从中读取,如果文件已经存在,不会在内存中初始化它,直接从文件中读取。性能完全不同:直接从文件读取时花费大约两倍的时间来解析。同时,我测试了parsenormal(1Kb)JSONstring和deep(2Mb)JSONstring的性能,这两个几乎不受影响。为什么?是CPU缓存?还是气相色谱?还是其他?代码在https://github.com/acr

go - 如何使 func main() 中设置的数据库实例对其他包可用?

我正在编写我的第一个goweb应用程序,我有以下结构:.├──main.go├──model│├──model.go│└──book.go├──route│└──route.go└──view└──view.go/main.go是我的ma​​in()所在的位置。在该文件中,我还定义了一个变量Env,我将在其中保存我的数据库实例(至少这是计划)。在/main.go我做import"project/view"typeEnvstruct{dbmodels.Collection}//restofthecodefuncmain(){db,err:=models.NewDB()//etcMyEnv

http - 如何在 http.ListenAndServe 中使用下一个可用端口

我写了一个简单的网络服务器来监听端口8080。但我不想使用硬编码的端口号。我想要的是我的服务器监听任何可用端口。我想知道我的Web服务器正在监听的端口号。我的代码如下:packagemainimport("net/http")funcmain(){http.HandleFunc("/",handler)http.ListenAndServe(":8080",nil)} 最佳答案 您可以使用端口0来表示您没有指定确切的端口,但您希望系统选择一个空闲的可用端口:http.ListenAndServe(":0",nil)问题在于您将无法找

go - Go 编译文件如何在不同的操作系统或 CPU 架构上工作?

由于我从昨天开始学习Golang:)我对编译后的文件有疑问。假设我编译我的项目。它在/bin文件夹中生成一个.exec文件。现在我的问题是,既然该文件是在基于IntelCPU的Mac上编译的,那么如果我想将它公开发布,它是否应该在其他操作系统和其他CPU架构(如AMD、ARM等)上编译?如果我在服务器上运行GOlang作为我的后端,我想这应该不是问题。但是,如果我发布我的.exec文件会发生什么,比方说在AWS上,有很多实例会根据负载自动增加/减少?有问题吗?编辑:对于那些正在寻找Go交叉编译工具的人来说,这是一个很好的解决方案https://github.com/mitchellh/

go - 如何在 make() 语句之前确定可用内存

在Go中,当使用make语句时,例如,分配兆字节的内存make([]byte,1024*1024*d)有没有办法在请求更多内存之前确定有多少内存可用? 最佳答案 感谢您的所有投入。我决定使用Max_Memory配置选项,因为此用例是在仅运行此应用程序的测试服务器上利用n兆字节的内存,最高可用内存的大约75%,作为触发的一种方式在测试环境中自动缩放。 关于go-如何在make()语句之前确定可用内存,我们在StackOverflow上找到一个类似的问题: htt

sockets - 没有可用的缓冲区空间(tcp.cpp :69) when setting SNDBUF and RCVBUF ZeroMQ, golang,MacOSX

我在MacOSX上使用brew安装了zeromq:stable4.1.4,并编写了一个简单的PUB/SUB程序来测试zeromq。但是当我使用标志--bufsize>5运行示例程序时(使用大小>5MB的缓冲区)(去运行go_zmq_pubsub.go--bufsize=6);它抛出以下异常:没有可用的缓冲区空间(tcp.cpp:69)SIGABRT:中止PC=0x7fff9911c286m=0cgo执行时信号到达下面是我用来测试zeromq4.x的程序packagemainimport("fmt""flag""strconv""sync"log"github.com/Sirupsen/

Go CPU 配置文件缺少函数调用信息

我一直在尝试根据https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs等文章深入研究Go(golang)性能分析.但是,在实际的profiled程序中,生成的CPUprofiles信息很少。go工具要么告诉配置文件为空,要么没有关于任何函数调用的信息。这在OSX和Linux上都会发生。我生成了一个这种情况的最小示例-我正在以类似的方式收集配置文件,并且在实际程序中也面临同样的问题。这是miniprofile/main.go的源代码:packagemaini

cpu 的 golang no/debug/pprof/profile 端点,同时拥有其他一切

我对无法分析我的golang程序的问题感到非常困惑,我在/debug/pprof下有所有其他端点但没有用于CPU分析的/debug/pprof/profile有没有人偶然发现过这样的问题?gotoolpprofhttp://localhost:7778/debug/pprof/profileFetchingprofilefromhttp://localhost:7778/debug/pprof/profilePleasewait...(30s)serverresponse:404NotFound同时/debug/pprof/profiles:19block31goroutine10he

go - core.v1.Pod.PodSpec 中未填充 cpu/内存量

使用以下代码:funcGetPods(clientset*kubernetes.Clientset,name,namespacestring)([]corev1.Pod,error){list,err:=clientset.CoreV1().Pods(namespace).List(metav1.ListOptions{LabelSelector:fmt.Sprintf("app=%s",name),})iferr!=nil{returnnil,err}returnlist.Items,nil}然后使用gopkg.in/yaml.v2将结果转储到yaml中,这里是描述容器资源的yaml