草庐IT

perform_calc

全部标签

performance - 什么时候应该初始化一个新变量,什么时候不应该?

我正在查看代码示例sql.query我对变量的初始化方式有点困惑。据我了解,var关键字会初始化变量,但如果您已经有了这样的变量,最好“重用”它而不是重新初始化它。我知道我可能误解了golang规范,所以我希望这个问题能帮助我(也许还有其他人)解决问题。rows,err:=db.Query("SELECTnameFROMusersWHEREage=?",age)iferr!=nil{log.Fatal(err)}deferrows.Close()forrows.Next(){varnamestringiferr:=rows.Scan(&name);err!=nil{log.Fatal(

performance - 在结构 "functions"中使用指针与复制

我是Go的新手,在编写结构“函数”时我真的无法决定何时使用指针还是副本(这是正确的术语吗?)typeBlahstruct{ccomplex128sstringffloat64}func(b*Blah)doPtr(){fmt.Println(b.c,b.s,b.f);}func(bBlah)doCopy(){fmt.Println(b.c,b.s,b.f);}现在,我的C++背景告诉我doPtr在速度和内存方面都更高效,但是很多示例使用doCopy除非你正在修改对象,所以我错过了什么吗? 最佳答案 [Go]FrequentlyAske

performance - 为什么我的 GAE 应用程序提供静态文件的延迟如此之高?

我在GAE上检查我的Go应用程序的性能,我认为静态文件的响应时间相当长(183毫秒)。是吗?为什么?我该怎么办?64.103.25.105--[07/Feb/2013:04:10:03-0800]"GET/css/bootstrap-responsive.cssHTTP/1.1"20021752-"Gohttppackage""example.com"ms=183cpu_ms=0 最佳答案 “常规”200毫秒对于静态文件来说似乎偏高。我从我的应用程序提供相同“bootstrap-responsive.css”的静态版本,我可以看到两

performance - 在 elastic beanstalk 上运行 Golang 应用程序时是否存在任何性能问题?

我正在尝试在go中对一个简单的“helloworld”HTTP服务器进行基准测试。我做了2个测试:使用亚马逊ec2-m3.medium实例使用amazonelasticbeanstalk-也使用m3.medium单实例在第一个设置中,我可以获得高达18k请求/秒。在第二个,1.6k请求/秒。源代码:(来自:https://golang.org/doc/articles/wiki/)packagemainimport("fmt""net/http")funchandler(whttp.ResponseWriter,r*http.Request){fmt.Fprintf(w,"Hither

performance - 为什么这个程序在使用 goroutines 时表现不佳?

我正在学习Go编程语言。请考虑以下程序,packagemainimport("fmt""bytes""os""os/exec""path/filepath""sync")funcgrep(filestring){deferwg.Done()cmd:=exec.Command("grep","-H","--color=always","add",file)varoutbytes.Buffercmd.Stdout=&outcmd.Run()fmt.Printf("%s\n",out.String())}funcwalkFn(pathstring,infoos.FileInfo,errerr

performance - 写入操作成本

我有一个将字符串写入文件的Go程序。我有一个迭代20000次的循环,在每次迭代中我将大约20-30个字符串写入文件。我只是想知道将它写入文件的最佳方式是什么。方法1:在代码开头保持打开文件指针,并为每个字符串写它。它使它成为20000*30次写入操作。方法二:使用bytes.Buffer去把所有的东西都存到缓冲区里并且把它写在最后。在这种情况下,文件指针也应该是从代码开头或代码末尾打开。做重要吗?我假设方法2应该更有效。有人可以证实这一点吗?一次写作如何比定期写作更好。因为文件指针无论如何都会打开。我正在使用f.WriteString()和buffer.WriteString()缓冲区

performance - 在 golang 中,使用 make 与 {} 初始化的 map 之间是否存在任何性能差异

我们知道有两种初始化map的方法(如下所列)。我想知道这两种方法之间是否存在任何性能差异。varmyMapmap[string]int然后myMap=map[string]int{}对比myMap=make(map[string]int) 最佳答案 在我的机器上,它们看起来差不多。您可以轻松地进行基准测试进行比较。例如:packagebenchimport"testing"varresultmap[string]intfuncBenchmarkMakeLiteral(b*testing.B){varmmap[string]intfo

performance - Go 语言指针性能

以下代码显示了两个基准。第一个在每次迭代中按值创建一个结构,而第二个确实使用指向该结构的指针。为什么后者慢20倍??我知道GoLang的GC问题,但逃逸分析不应该处理这些情况吗?我使用的是go1.4beta1,但1.3.3给了我[相同-错误]不同的结果。有什么想法吗?packagemainimport"testing"typeAdderstruct{vals[]int}func(a*Adder)add()int{returna.vals[0]+a.vals[1]}funcBenchmarkWithoutPointer(b*testing.B){accum:=0fori:=0;i基准go

performance - 在golang中解析日期和时间的最佳方式

我有很多日期时间值作为字符串传入我的golang程序。格式固定为位数:2006/01/0215:04:05我开始用time.Parse解析这些日期功能constdtFormat="2006/01/0215:04:05"funcParseDate1(strdatestring)(time.Time,error){returntime.Parse(dtFormat,strdate)}但是我的程序有一些性能问题。因此,考虑到我的格式有点固定,我尝试通过编写自己的解析函数来调整它:funcParseDate2(strdatestring)(time.Time,error){year,_:=st

performance - 如何解释 pprof 输出?

我正在尝试分析一个用go编写的应用程序,它显然使用了大约256个虚拟内存(使用psaux检查)。我正在尝试使用pprof打包并查看哪些函数分配/消耗了大部分内存,但结果对我来说毫无意义。pproftop似乎只列出了运行时函数。谁能帮我理解这些数据?psaux|grepandroidroot45843.40.150024429536pts/1Sl+17:210:38./android-logtostderr转到工具pprofhttp://localhost:6060/debug/pprof/heap/pprof.localhost:6060.inuse_objects.inuse_spa