草庐IT

execute_manager

全部标签

go - 有人在 go-executable 上有简单的 pprof 使用吗?

我看过关于profilinggoprograms的文章,我根本不明白。有人有一个简单的代码示例吗?代码片段的性能是通过配置文件“对象”记录在文本文件中的吗? 最佳答案 以下是我用于简单CPU和内存分析的命令,可帮助您入门。假设您制作了这样的基准函数:文件something_test.go:funcBenchmarkProfileMe(b*testing.B){//executethesignificantportionofthecodeyouwanttoprofileb.Ntimes}在shell脚本中:#-testXXXisatr

Golang 构建 : get 'Syntax error: newline unexpected' when executing executable from specific path

我的应用打包如下:|-cmd/|-cmd/application/并且当从根/运行以下命令时:gobuildcmd/application/*.go它生成一个运行良好的可执行文件。但是当从/cmd/application中输入以下命令时:gobuildmy_app_custom_name我收到Syntaxerror:newlineunexpected错误,就好像它不再是bash可执行文件一样。 最佳答案 在使用标志-v和-x之后,在指示@Volker的帮助下,我发现我将包命名为“myapp”,而不是应有的“main”。现在它工作得很

memory-management - 如何在 Go 中分配 16GB 的内存?

我正在使用以下简单的Go代码来分配大小为1024x1024x1024的3D数组:grid=make([][][]TColor,1024)forx=0;x那个TColor结构是一个4分量的float64向量:typeTColorstruct{R,G,B,Afloat64}分配进行到一半(x=477和y=~600ish)时,最内层的make()调用出现panic...运行时:内存不足:无法分配65536字节block(17179869184正在使用中)这适用于较低的网格分辨率,即256³、128³等。现在由于结构的大小为4x4字节,因此整个网格应该正好需要16GB的内存。我的机器(open

memory-management - 如何在go中释放内存?

我有一个结构:typexyzstruct{xintystring}funcf(){x:=new(xyz)//allocatingmemory}但是我在go中找不到任何方法来释放它。在golang中不需要释放吗?有没有关于go中内存分配/解除分配的有用文档? 最佳答案 Go是垃圾回收语言。您不必释放内存。关于Go中内存分配和释放的文章。GarbagecollectionHeapandstackallocationDiscussiononallocationoptimizationVariableallocation

memory-management - 为什么我的 Go 程序内存波动这么大?

我有一个分配大量映射和slice的Go程序。通常有很多使用、分配开销等。我运行它,它加载大量数据,然后我使用Web服务查询它。在我让它运行后,当它读入所有数据并且没有进行任何查询(即应该稳定)时,我看到内存波动。最近报道:5.42GB、5.01GB和4.3GB的实际内存。这是一个巨大的波动。我有大约1.5亿个对象(卡在主哈希表之外的slice)。那是很多小object。我预计会有一点波动(尽管我永远不会期望内存在没有分配新对象并且主线程阻塞在套接字上时增加)。可能的解释是大量小分配的开销只会乘以任何自然波动一些代码正在分配对象(虽然我看不到如何分配)GoGC正在执行自己的分页(?)我使

memory-management - delete() 是立即释放内存还是需要 runtime.GC() 来释放它?

我有一张mapmyMap:=map[string]stringmyMap['hello']='world'myMap['foo']='bar'当我从myMap中删除一个元素时,例如,delete(myMap['hello'])它是立即释放内存还是在垃圾收集器运行后释放内存。如果它在垃圾收集器运行后释放内存,是否运行runtime.GC()将立即清理内存。还有runtime.GC()资源匮乏吗?或者可以在每个delete()函数之后运行runtime.GC()更新2:忘记我的程序做了什么(基本更新1)检查此链接http://play.golang.org/p/Wb8-4qWyf4每10微

使用 Delve : execute function 进行调试

我使用runtime.Breakpoint()在我的Go代码中设置了一个断点,保存文件(我的编辑器,带有go-plusinstalled的Atom,运行goinstall.节省)。然后我在终端中使用dlvdebug运行Delve,并在它启动后键入continue。当断点启动时,我想测试一些东西(主要是打印读者的数据viaabytes.Buffer)。但是,我收到以下错误buf:=new(bytes.Buffer):"1:5:expected'EOF',found':='"并且通常只能打印值。难道真的不能做这种事吗?我习惯了Python的pdb,在其中设置变量或调用函数不是问题,我希望D

docker - Golang docker 多阶段构建运行失败 : exec: "go": executable file not found in $PATH

使用Docker多阶段构建部署简单API时,会抛出以下错误:$dockerbuild-tapi:latest.[...]$dockerrun-p4880:4880--rm--name=apiapi:latest2019/01/2923:02:15exec:"go":executablefilenotfoundin$PATH因为我的应用程序没有从任何地方(或任何exec.Command)调用go,所以我运行了一个gomodvendor,所以我可以检查依赖源代码,发现如下:vendor/github.com/lib/pq/oid/gen.go12:"os/exec"64:cmd:=exec

memory-management - CGO:如何使用 malloc 从 go 中释放在 C 中分配的内存以避免内存泄漏

我正在尝试使用CGO从golang调用复杂算法的优化C++CPU绑定(bind)实现。基本上,它将一个字符串传递给C++函数并取回一个字符串。代码的简化版本如下所示:算法.gopackagemain//#cgoLDFLAGS://#include//#include//#include//char*echo(char*s);import"C"import"unsafe"funcmain(){cs:=C.CString("Hellofromstdio\n")deferC.free(unsafe.Pointer(cs))varechoOut*C.char=C.echo(cs)//defer

ssh - 戈朗 : Execute shell commands on remote server

我有50台左右的Linux机器(RHEL)。我想通过在中央机器上运行的go脚本在这些机器上运行一些命令。我已经为从中央机器到所有远程机器的所有人设置了无密码ssh身份验证。尽管我也对非ssh解决方案持开放态度,但首选安全的解决方案。正在运行的命令会随着时间而改变。我还想在中央机器上运行的脚本中处理在远程机器上运行的命令的输出和返回代码。我只找到这个sshpackage,仅支持密码认证方式,不够好。还有其他选择吗? 最佳答案 你可以使用这个包https://github.com/hypersleep/easyssh例如你可以远程调用p