有人用过 go 的 martini 框架么?

2014-12-25 02:14:29 +08:00
 aeshfawre

用的是框架的demo,增加了一个get和post的处理

m:=martini.Classic()
m.Get("/add",AddTask)
m.Post("/add",AddTask)

func AddTask(res http.ResponseWriter,req *http.Request)string{
//  req.ParseForm()
    u:=req.FormValue("u")
    p:=req.FormValue("p")
    return u+" "+p
}

这里是同样一个函数,为什么get方法和post方法的处理时间相差了100倍呢,我哪里用错了么,求教育

[martini] Started POST /add for 192.168.1.103:4920
[martini] Completed 200 OK in 225.794884ms
[martini] Started POST /add for 192.168.1.103:4920
[martini] Completed 200 OK in 226.507443ms
[martini] Started GET /add for 192.168.1.103:4920
[martini] Completed 200 OK in 1.674314ms
[martini] Started GET /add for 192.168.1.103:4920
[martini] Completed 200 OK in 1.099566ms

1497 次点击
所在节点    Go 编程语言
10 条回复
aeshfawre
2014-12-25 10:45:07 +08:00
求关注,都没遇到过这问题么?
tysx
2014-12-25 11:11:27 +08:00
完整代码呢?
aeshfawre
2014-12-25 14:02:55 +08:00
这个代码已经就是完整的了,import 和func main就这两行省略了,还一行 m.run
我这里做了点分析. 发送数据包是用火车头里面的那个httppostget程序.
在win7 64系统中发送post包,martini这边的处理时间就会200多ms
在虚拟机的xp系统中发送post包,处理时间就是正常的,

用httpdebugger截取了两个系统中发送的post包,是一模一样的,没区别.

所以我猜测可能是多出来的时间是发生在发起http连接的步骤中,具体怎么样的原因就不清楚了.
可能只是httppostget这个程序的坑吧,只是这样猜测.
这个问题影响不大.结贴
lyric
2014-12-25 15:05:17 +08:00
OS X 下差不多的性能,非 Product 环境

[martini] Started GET /echo for 127.0.0.1:50571
[martini] Completed 200 OK in 151.042us
[martini] Started POST /echo for 127.0.0.1:50572
[martini] Completed 200 OK in 254.716us
datou552211
2014-12-25 16:27:30 +08:00
难道在post里面做了crsf验证
aeshfawre
2014-12-25 18:25:28 +08:00
@lyric 你那里的get和post的处理时间相差不大的,我这里的是差了很多.可能只是我这里发送post包的程序有点问题
aeshfawre
2014-12-25 18:27:12 +08:00
@datou552211 没弄那个的
defia
2014-12-28 21:27:56 +08:00
@aeshfawre 你可以用 http://gin-gonic.github.io/gin/ 这个框架试试 martini比较慢的。。
aeshfawre
2014-12-28 23:34:01 +08:00
@defia 十分感谢,martini框架搜到的次数更多点,gin这个还真没找到过.
l3i2
2015-01-23 10:17:34 +08:00
@aeshfawre, 用PostFormValue替代FormValue试一下?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/156477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX