V2EX zkdfbb 的所有回复 第 1 页 / 共 7 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    zkdfbb    全部回复第 1 页 / 共 7 页
回复总数  138
1  2  3  4  5  6  7  
支持一下
2021-04-07 12:23:49 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@qieqie 这样确实会更快一点,不过应该基本无影响。就像很多框架的 benchmark 差很多,但是架不住加上自己的业务逻辑后都差不多了。。。
2021-04-07 11:56:45 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@lesismal 我也是看 fiber 接口设计比较舒服,基本的功能也都比较完备,然后好像还说作者全职在做这个所以用的,之前就看到过一篇文章说高并发下有问题不过也没太在意。。。生产环境下有啥好推荐的么

https://cloud.tencent.com/developer/news/462918
2021-04-07 09:07:10 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@dallaslu
@no1xsyzy
@makdon

感谢分析~ 用 Immutable: true 就正常了,可结贴了
2021-04-07 00:03:01 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@dallaslu 确实是这样
2021-04-06 23:08:20 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
如果是 test.lua 是

request = function()
num = math.random(1, 1)
path = "/item/id" .. num
return wrk.format("GET", path)
end


就是链接唯一的话,又正常
2021-04-06 23:03:34 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@makdon
@lesismal
@GTim
@Orlion
@sxfscool
@Lpl
@ClarkAbe
@kcojkcnw

我补了一份最小测试用例,你们看看能不能复现,我仍然是一头雾水
2021-04-06 21:05:00 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
我用下面的方式测试了一下,比之前的结果要好一点,但是还是不对,但是 tmp 里面的访问次数加起来只有 nginx 的 access.log 里面的一半

accessLog.Lock()
tmp := make(map[string]int)
for k, v := range accessLog.data {
tmp[k] += v
}
accessLog.data = make(map[string]int)
accessLog.Unlock()
2021-04-06 20:42:37 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@makdon
@lesismal
@GTim
@Orlion
@sxfscool
@Lpl
@ClarkAbe
@kcojkcnw

各位大佬,我又测试了一下,用 counter = &Counter{data: make(map[string]int)} 初始化全局变量,然后后面重新赋值的时候也加了锁,但是仍然不行,打印 accessLog.data 的时候用 "%s, %x" 打印 key,结果 hash 是一样的

https://p26-tt.byteimg.com/origin/pgc-image/4963875f190e4ccf9b8a89fcbad8590e
https://wkphoto.cdn.bcebos.com/d1160924ab18972b923ebfb4f6cd7b899e510a43.jpg
2021-04-06 17:28:30 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
然后如果打印 tmp 的话,因为 json 格式化之后,重复的 id 都去掉了,就会变的特别少
这个图,上面是打印 accessLog.data, 下面是打印 tmp

https://p26-tt.byteimg.com/origin/pgc-image/55a1b5f43bce43058915b2a74561f1d6
2021-04-06 17:25:37 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@ZSeptember
@makdon
@Lpl

就这样,直接打印 accessLog.data 的话,有重复的 id
![]( https://p3-tt-ipv6.byteimg.com/origin/pgc-image/29af76c21c3f4e148252613ab6754a7c)
2021-04-06 16:55:30 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@joesonw 嗯,就是本来只要几百个 key 的,结果 map 长度可以上万,也打印过 map 本身,看到的就是有重复的 key
2021-04-06 16:17:29 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@joesonw 是要加个锁,不过不是因为这个,我试过把这句注释掉,也是一样的
2021-04-06 15:58:44 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@Lpl 这个只是个简化的例子,实际上还需要处理一下,不过意思是一样的
2021-04-06 15:58:09 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@makdon 不是的,我用的就是 map[string]int,统计的就是一个字符串 id 的访问次数,hashkey 是一样的
要是正常我就不问了,问就是因为不正常
我也感觉光看这段代码应该看不出什么问题,但是事实就是这么猝不及防的发生了,脑阔疼
2021-04-06 14:50:25 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@no1xsyzy
@GTim

补在后面了,看看能不能发现什么问题
2021-04-06 14:49:14 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@AngryPanda 按理加了锁应该不同的协程也是 OK 的
2021-04-06 14:48:48 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@Lpl 批评的对
atomic 的话,由于 id 不是唯一的,好像不太方便
没试过用管道,我直观以为管道性能会更差一点,看来我理解错了,可以试一下
有看到过用分段锁的例子,concurrent-map 这个,不过我测了一下就用一把锁好像也足够用了就先这么用了,结果就出现了这个神奇的问题,完整的代码补上了,你看看能不能看出来哪里的问题
2021-04-06 12:56:19 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@skiy 这个代码简洁了一点~性能下降了一点~
2021-04-06 12:55:39 +08:00
回复了 zkdfbb 创建的主题 Go 编程语言 map 的一个神奇的问题
@yuguorui96 nginx 是多进程,但是这个 go 的后端只有一个,应该没影响啊
1    3  4  5  6  7  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3515 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 18ms UTC 04:39 PVG 12:39 LAX 21:39 JFK 00:39
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86