草庐IT

performing

全部标签

performance - 我如何在 Go 中编写基准测试脚本来测量 ops/sec

我正在通过编写一个简单的Redis克隆来练习我的Golang。我如何编写一个基准测试脚本来在C并发级别每秒建立X个连接来处理我的服务器协议(protocol)并测量每秒有多少操作?我可以简单地编写一个实际执行此操作的脚本:fori:=range(1000){//Openconnection//Performcommand//Closeconnection}但我想知道每秒分配每个并发级别的连接数背后的概念。 最佳答案 这最好由内置的testing.Benchmark处理系统。例如,这样的测试用例:funcBenchmarkHello(

performance - 在 init 或处理函数中读取模板?

我正在为网站编写一个基本服务器。现在我面临一个(对我来说)困难的性能问题。是不是在init()函数中读取模板文件比较好?//Initializeallpagesofwebsitefuncinit(){indexPageData,err:=ioutil.ReadFile("./tpl/index.tpl")check(err)}还是在http.HandlerFunc中?funcindex(whttp.ResponseWriter,req*http.Request){indexPageData,err:=ioutil.ReadFile("./tpl/index.tpl")check(err

performance - 为什么这个 Go 代码的速度与 Python 的速度相当(而且快不了多少)?

我需要为超过1GB的文件计算sha256校验和(按block读取文件),目前我正在使用python:importhashlibimporttimestart_time=time.time()defsha256sum(filename="big.txt",block_size=2**13):sha=hashlib.sha256()withopen(filename,'rb')asf:forchunkiniter(lambda:f.read(block_size),b''):sha.update(chunk)returnsha.hexdigest()input_file='/tmp/1GB

performance - 代码顺序和性能

我想找出哪个更快:结构与数组。所以我写了一个GO代码,其中我将4个int值(1、2、3和4)写入一个结构的成员,然后写入一个长度为4的数组。我试图找出写入所需的时间。案例1:首先,我将值写入结构,然后写入数组。在这里我发现数组比结构更快。packagemainimport("fmt""time")typeabcstruct{a,b,c,dint}funcmain(){varobjabct1:=time.Now()obj.a=1obj.b=2obj.c=3obj.d=4t2:=time.Since(t1)fmt.Println("Structaccesstime::",t2)a:=mak

performance - 迄今为止的 CSV 和 float

我目前正在编写一个小程序,将CSV文件转换为用于进一步处理的结构。csv行看起来像这样20140102,09:30,38.88,38.88,38.82,38.85,67004我有500个文件,每个大约20-30MB。我的代码工作得很好,但我不禁想知道是否有比我现在正在做的更好的方法来转换这些文件。先读取文件并转为csv记录(伪代码)data,err:=ioutil.ReadFile(path)iferr!=nil{...}r:=csv.NewReader(bytes.NewReader(data))records,err:=r.ReadAll()iferr!=nil{...}然后遍历所

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