由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 好多人害怕锁
相关主题
魏公公,赌局我接了,你把500万/秒的订票系统做出来说了半天异步是大势所趋没什么疑问了
魏老师的方案go channel和clojure core.async哪个好
我说老 bug,给个数据库模型大家学习学习any php experts?
应该请dsb之类学物理的来说说[合集] Linux/Unix下时间的精度 (转载)
春运这个东西,用Storm就可以轻松搞定了如果给随即函数rand[1,5] 如何产生rand[1,7] (转载)
100%和必需出票属于没戏了座席优化
goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大QXC 几个问题明确一下
看了一下Meteor很不错阿里一线工程师来告诉你:当你在双十一剁手时,他们在干嘛
相关话题的讨论汇总
话题: 变量话题: nonblock话题: 车次话题: 线程话题: cpu
进入Programming版参与讨论
1 (共1页)
n*****t
发帖数: 22014
1
我如果没记错的话,一个锁的开销大概 50 CPU cycles,nonblock 的话不会太浪费。
你们概念里是多少?
b*******s
发帖数: 5216
2
估计他们也不知道有时block比nonblock更快,基本都是用别人的东西的糊涂蛋
知其然不知所以然,比如赵策

【在 n*****t 的大作中提到】
: 我如果没记错的话,一个锁的开销大概 50 CPU cycles,nonblock 的话不会太浪费。
: 你们概念里是多少?

n**x
发帖数: 606
3
怕不怕到没啥, 关键是一个锁会导致无数请求的排队等待,导致的性能下降是主要问
题。

【在 n*****t 的大作中提到】
: 我如果没记错的话,一个锁的开销大概 50 CPU cycles,nonblock 的话不会太浪费。
: 你们概念里是多少?

b*******s
发帖数: 5216
4
要看情况的

【在 n**x 的大作中提到】
: 怕不怕到没啥, 关键是一个锁会导致无数请求的排队等待,导致的性能下降是主要问
: 题。

d***a
发帖数: 13752
5
是这样。所以很多高性能设计要避免用锁,或用小粒度(fine-grained)的锁。

【在 n**x 的大作中提到】
: 怕不怕到没啥, 关键是一个锁会导致无数请求的排队等待,导致的性能下降是主要问
: 题。

b*******s
发帖数: 5216
6
不是绝对的,不过锁多了难维护是个问题
难维护不是像赵策认为的死锁难维护
多白痴才会被死锁困扰,四条件随便破坏一个不就得了
他就是个入门水平

【在 d***a 的大作中提到】
: 是这样。所以很多高性能设计要避免用锁,或用小粒度(fine-grained)的锁。
b*******s
发帖数: 5216
7
不过赵老师还有饭吃,说明java是个好语言

【在 b*******s 的大作中提到】
: 不是绝对的,不过锁多了难维护是个问题
: 难维护不是像赵策认为的死锁难维护
: 多白痴才会被死锁困扰,四条件随便破坏一个不就得了
: 他就是个入门水平

n*****t
发帖数: 22014
8
这个可以优化,我设想每个车次每类座席用一个锁,同时请求同一个锁的几率并不高,
即使发生了,这个车次也是几个 ms 就全灭了。热门车次一开始可能拖后腿,可以看看
怎么调度。

【在 n**x 的大作中提到】
: 怕不怕到没啥, 关键是一个锁会导致无数请求的排队等待,导致的性能下降是主要问
: 题。

n**x
发帖数: 606
9
在这个500万的需求里,上锁一定是巨大的瓶颈。。。

【在 b*******s 的大作中提到】
: 要看情况的
n*****t
发帖数: 22014
10
绝大部分锁是立即拿到的,所以 。。。

【在 n**x 的大作中提到】
: 在这个500万的需求里,上锁一定是巨大的瓶颈。。。
相关主题
100%和必需出票属于没戏了说了半天异步是大势所趋没什么疑问了
goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大go channel和clojure core.async哪个好
看了一下Meteor很不错any php experts?
进入Programming版参与讨论
b*******s
发帖数: 5216
11
嗯,这个适合nonblocking的
就线程捆在core上,用spin lock方法

【在 n**x 的大作中提到】
: 在这个500万的需求里,上锁一定是巨大的瓶颈。。。
n**x
发帖数: 606
12
100线程上锁更新一个公共变量,跟一百个线程concurrent更新一个private变量。性能
差距是数量级的.

【在 n*****t 的大作中提到】
: 绝大部分锁是立即拿到的,所以 。。。
a***n
发帖数: 538
13
这个要看这个变量是一节车厢,还是一个座位吧。
我觉得买票的事情是可以用多个变量来减低contention的。就是最后省下几张票的时候
会比较慢一点。

【在 n**x 的大作中提到】
: 100线程上锁更新一个公共变量,跟一百个线程concurrent更新一个private变量。性能
: 差距是数量级的.

n*****t
发帖数: 22014
14
纳尼?
1000 个车次 5 类座席 5000 个锁,16 core 起 16 个 threads 多了用处不大。同时
抢同一个锁的几率很小吧?

【在 n**x 的大作中提到】
: 100线程上锁更新一个公共变量,跟一百个线程concurrent更新一个private变量。性能
: 差距是数量级的.

b*******s
发帖数: 5216
15
你是说粒度还是运算复杂度?

【在 a***n 的大作中提到】
: 这个要看这个变量是一节车厢,还是一个座位吧。
: 我觉得买票的事情是可以用多个变量来减低contention的。就是最后省下几张票的时候
: 会比较慢一点。

b*******s
发帖数: 5216
16
可以再多一倍,hyper threading

【在 n*****t 的大作中提到】
: 纳尼?
: 1000 个车次 5 类座席 5000 个锁,16 core 起 16 个 threads 多了用处不大。同时
: 抢同一个锁的几率很小吧?

a***n
发帖数: 538
17
减少单个变量更新的contention. 比如有100张票,那么分成3个变量33,33,34,就可以
3个进程
都同时更新,最后一张票的时候会比较慢,因为要3个变量都检查。但是大部分情况只
要锁住一个变量就可以保证有票了。

【在 b*******s 的大作中提到】
: 你是说粒度还是运算复杂度?
n*****t
发帖数: 22014
18
我是打算留着做 network/disk io,不过一肩挑问题也不大

【在 b*******s 的大作中提到】
: 可以再多一倍,hyper threading
z****e
发帖数: 54598
19
我很有把握地认为
你去做,一定挂
哈哈,别说废话
做吧,又不敢说
唧唧歪歪跟个娘们一样

【在 b*******s 的大作中提到】
: 不是绝对的,不过锁多了难维护是个问题
: 难维护不是像赵策认为的死锁难维护
: 多白痴才会被死锁困扰,四条件随便破坏一个不就得了
: 他就是个入门水平

b*******s
发帖数: 5216
20
屁都不懂的少插嘴

【在 z****e 的大作中提到】
: 我很有把握地认为
: 你去做,一定挂
: 哈哈,别说废话
: 做吧,又不敢说
: 唧唧歪歪跟个娘们一样

z****e
发帖数: 54598
21
不敢做说那么多有啥用哦?
说这么多跟放屁有什么区别?

【在 b*******s 的大作中提到】
: 屁都不懂的少插嘴
1 (共1页)
进入Programming版参与讨论
相关主题
阿里一线工程师来告诉你:当你在双十一剁手时,他们在干嘛春运这个东西,用Storm就可以轻松搞定了
类似yelp这样的服务需要mongo做storage吗?100%和必需出票属于没戏了
如果用scrum做sprint plan,怎么确定user story和task?goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大
python: 可以用map计算数列之间的差额吗?看了一下Meteor很不错
魏公公,赌局我接了,你把500万/秒的订票系统做出来说了半天异步是大势所趋没什么疑问了
魏老师的方案go channel和clojure core.async哪个好
我说老 bug,给个数据库模型大家学习学习any php experts?
应该请dsb之类学物理的来说说[合集] Linux/Unix下时间的精度 (转载)
相关话题的讨论汇总
话题: 变量话题: nonblock话题: 车次话题: 线程话题: cpu