当前在线人数7230
首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
抓住了问题的本质,才能知道如何讨论问题
[版面:葵花宝典][首篇作者:TeacherWei] , 2019年01月08日13:23:12 ,1862次阅读,49次回复
来APP回复,赚取更多伪币 关注本站公众号:
[首页] [上页][下页][末页] [分页:1 2 3 ]
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Tue Jan  8 13:23:12 2019, 美东)

这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不需
要算账,运气是第一生产力。

讨论了这么多,没触及到问题的本质。

io为什么要nonblocking啊?blocking行不行?有什么优点和缺点?

为啥要async?和nonblocking有啥不一样?sync行不行?

能回答这些问题,才是会算账的。
--
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
lightroom
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: lightroom (吃一条鱼,思考一个问题,法号三丰), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Tue Jan  8 14:40:22 2019, 美东)

大部分公司乱折腾的主要原因是底下的人要升职

【在  TeacherWei(TW)的大作中提到:】
:这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不
需要算账,运气是第一生产力。


--
※ 来源:·Android 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
summerMe
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: summerMe (summer), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Tue Jan  8 15:46:00 2019, 美东)


希望有人 给出答案啊!!



正在学习IO。公司用的.net 开发的 stream server:处理camera的server
一个server 运行在一个PC上。server 最多能连200个camera。
就是说 同时200 个 camera stream 同时进入PC。

正在学习,为啥只能连200个? 看了看iocp。 发现iocp 用几个thread loop IO 做的。

再往深了,还没学到。



【 在 TeacherWei (TW) 的大作中提到: 】
: 这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不需
: 要算账,运气是第一生产力。
: 讨论了这么多,没触及到问题的本质。
: io为什么要nonblocking啊?blocking行不行?有什么优点和缺点?
: 为啥要async?和nonblocking有啥不一样?sync行不行?
: 能回答这些问题,才是会算账的。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Tue Jan  8 16:05:47 2019, 美东)

继续提问:
如果项目需求只需要一个网络连接,怎么做最好?为什么?
如果一个服务器要2M网络连接呢?平均每个连接每秒发1个消息。怎么做?为什么?各
种方案的性能上限是多少?
关键是这个"为什么"?
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
minquan
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: minquan (三民主义), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Tue Jan  8 20:44:23 2019, 美东)

本质应该是硬件的制约

很多编程框架都是费一种硬件,来减轻另一种硬件的压力

例如async就是费内存,省CPU
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
hnpc
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: hnpc (爱慕拆腻子🇨🇳🇨🇳🇨🇳), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Tue Jan  8 21:21:43 2019, 美东)

Nonblocking IO是为了解决C10k问题才火起来的

--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 216.]

 
guvest
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: guvest (我爱你老婆Anna), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 00:34:31 2019, 美东)

对的。还有一半的情况是manager要向底下的人要假项目。
不然director问起来manager,"你干啥了?”
那这manager总不能天天说我忙着裁员重组了。


【 在 lightroom(吃一条鱼,思考一个问题,法号三丰) 的大作中提到: 】
<br>: 大部分公司乱折腾的主要原因是底下的人要升职
<br>: :这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱
决策不
<br>: 需要算账,运气是第一生产力。
<br>: :
<br>
--
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 47.]

 
silverhawk
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: silverhawk (silverhawk), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 02:02:51 2019, 美东)

老魏好问题啊

1.IO为什么要nonblocking,这个可能大部分人理解,要不然blocking thread在IO时候
空转等待IO完成消耗CPU资源又没真正工作。

2. async可以基于nonblocking理解,那么我现在nonblocking把资源让出来了,我怎么
知道我这个thread的IO什么时候完成?是需要我去隔断时间看看?还是直接OS完成了之
后告诉我


【 在 TeacherWei (TW) 的大作中提到: 】
: 这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不需
: 要算账,运气是第一生产力。
: 讨论了这么多,没触及到问题的本质。
: io为什么要nonblocking啊?blocking行不行?有什么优点和缺点?
: 为啥要async?和nonblocking有啥不一样?sync行不行?
: 能回答这些问题,才是会算账的。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 107.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 10:29:59 2019, 美东)

其实我一直在等有人说出那关键的两个词。现在还没人说出来。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
dracodoc
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 10 ]

发信人: dracodoc (david), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 11:38:49 2019, 美东)

串行概念简单,并行性能高,但是容易有各种冲突,需要解决,很多时候的解决方案又
是通过lock来回到串行概念。

IO明显比cpu慢几个数量级,这时用nonblocking就是用并行的方式,哪怕是在单机,但
是把IO当成另外一个处理器,不再等待可以提高性能,当然也需要注意维护正确性。这
种方式不是传统OS支持的,所以在语言和框架里实现。

轻量级线程之类是另一个路子,解决更加通用的问题。

node.js使劲吹这个,就是为了扭转别人对js做服务端性能不足的印象,广告做的够多
,所以大家印象比较深。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 11 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 11:40:03 2019, 美东)

我就等你说答案了。。。。然后再说,跟我说的等价。:)

【 在 TeacherWei (TW) 的大作中提到: 】
: 其实我一直在等有人说出那关键的两个词。现在还没人说出来。




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2607:fb90:b65a:]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 12 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 11:44:28 2019, 美东)

反正目前为止还没有靠谱的。

这下子问题大了。这么简单的问题根源,跟数学基本没有任何鸟关系,竟然就是没人说
出来。也是醉了。


【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 我就等你说答案了。。。。然后再说,跟我说的等价。:)



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
silverhawk
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 13 ]

发信人: silverhawk (silverhawk), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 12:58:07 2019, 美东)

老魏不要卖关子了直接科普把
【 在 TeacherWei (TW) 的大作中提到: 】
: 反正目前为止还没有靠谱的。
: 这下子问题大了。这么简单的问题根源,跟数学基本没有任何鸟关系,竟然就是没人说
: 出来。也是醉了。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 167.]

 
pxu
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 14 ]

发信人: pxu (又呱噪又抠门还偷老婆钱), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 13:18:24 2019, 美东)

context switching and state management


【 在 silverhawk (silverhawk) 的大作中提到: 】
: 老魏不要卖关子了直接科普把



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 204.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 15 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 13:32:14 2019, 美东)

很简单啊,一个context switch 1200-1500ns。这还是pin to core。要是过程中换
core要2000ns。这还是现代CPU。8年前的CPU要5000ns。

普通的syscall,即使有priority switch,才50ns。

你一个thread一个socket,做blocking。CPU一个wait一个唤醒,2个context switch没
有了。一秒钟也就30万次撑死了,别的啥都不能干了。

所以nonblocking就是内核先把网络信息包都收着。然后一个select/poll/epoll给你一
批。一个context switch给你成百上千上万。或者内核批处理收到包以后直接call你的
iocp注册的callback。老的网卡iocp性能有点优势,新的网卡性能都一样了。

所谓async,就是nonblocking以后call你注册的callback而已。

golang的goroutine,则是模拟thread,但是switch比context switch效率高多了。
async打乱了程序的正常流程,原来在栈stack里面的local variable碰到io就没了。
goroutine不会有这个问题,当然潜在的每个goroutine都要有stack memory。一般每个
4K。一个million就是4G。当然4G内存也不值钱。


【 在 silverhawk(silverhawk) 的大作中提到: 】
<br>: 老魏不要卖关子了直接科普把
<br>
--
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 16 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 13:37:48 2019, 美东)

其实教科书写的都对。当然教科书基本啥都没写。至于有没有教对,或者有没有学对就
另说了。

下面给你们说一个开脑洞的。本人版权所有。

其实最简单,效率最高的是polling,不是中断或者callback。理解这个有困难要解放
你的思想。反正CPU闲着也是闲着。要是用100W的功耗换多一倍甚至10倍的throughput
,而且写的代码最少最容易懂,你干不干?

说到此点到为止。

--
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
windstory
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 17 ]

发信人: windstory (windstory), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 13:48:10 2019, 美东)

对IO不熟悉。MPI里面blocking vs. non-blocking; async vs. sync
倒都是设计层次的考虑。

IMHO, non-blocking is for parallelism, overlapping
computing and communication/io. 缺点是应用层要直接控制
并行度。

async & sync是管通信的,它们都可以用来实现blocking or non-blocking
comm functions. async优点是low latency,在可靠性高的网络上
性能好,用起来比较麻烦;sync用起来简单,实现比较费事,但比较可靠。

大家批判一下。

【 在 TeacherWei (TW) 的大作中提到: 】
: 这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不需
: 要算账,运气是第一生产力。
: 讨论了这么多,没触及到问题的本质。
: io为什么要nonblocking啊?blocking行不行?有什么优点和缺点?
: 为啥要async?和nonblocking有啥不一样?sync行不行?
: 能回答这些问题,才是会算账的。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 130.]

 
windstory
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 18 ]

发信人: windstory (windstory), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 13:52:34 2019, 美东)

哦,原来大家在OS里面讨论。对不住,跑题了。

【 在 TeacherWei (TW) 的大作中提到: 】
: 很简单啊,一个context switch 1200-1500ns。这还是pin to core。要是过程中换
: core要2000ns。这还是现代CPU。8年前的CPU要5000ns。
: 普通的syscall,即使有priority switch,才50ns。
: 你一个thread一个socket,做blocking。CPU一个wait一个唤醒,2个context switch没
: 有了。一秒钟也就30万次撑死了,别的啥都不能干了。
: 所以nonblocking就是内核先把网络信息包都收着。然后一个select/poll/epoll给你一
: 批。一个context switch给你成百上千上万。或者内核批处理收到包以后直接call你的
: iocp注册的callback。老的网卡iocp性能有点优势,新的网卡性能都一样了。
: 所谓async,就是nonblocking以后call你注册的callback而已。
: golang的goroutine,则是模拟thread,但是switch比context switch效率高多了。
: ...................



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 130.]

 
windstory
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 19 ]

发信人: windstory (windstory), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 13:54:22 2019, 美东)

嗯,这个做过测试。polling的代价微乎其微,测几个bits而已。

【 在 TeacherWei (TW) 的大作中提到: 】
: 其实教科书写的都对。当然教科书基本啥都没写。至于有没有教对,或者有没有学对就
: 另说了。
: 下面给你们说一个开脑洞的。本人版权所有。
: 其实最简单,效率最高的是polling,不是中断或者callback。理解这个有困难要解放
: 你的思想。反正CPU闲着也是闲着。要是用100W的功耗换多一倍甚至10倍的
throughput
: ,而且写的代码最少最容易懂,你干不干?
: 说到此点到为止。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 130.]

 
wdong
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 20 ]

发信人: wdong (万事休), 信区: Programming
标  题: Re: 抓住了问题的本质,才能知道如何讨论问题
发信站: BBS 未名空间站 (Wed Jan  9 14:19:33 2019, 美东)

老魏你上面这个帖子真牛。能说出来啥操作要多少纳秒就是牛,我反正说不出来。

不过polling这个,DPDK最高效的做法就是polling吧,应该不能算你版权所有。

【 在 TeacherWei (TW) 的大作中提到: 】
: 其实教科书写的都对。当然教科书基本啥都没写。至于有没有教对,或者有没有学对就
: 另说了。
: 下面给你们说一个开脑洞的。本人版权所有。
: 其实最简单,效率最高的是polling,不是中断或者callback。理解这个有困难要解放
: 你的思想。反正CPU闲着也是闲着。要是用100W的功耗换多一倍甚至10倍的
throughput
: ,而且写的代码最少最容易懂,你干不干?
: 说到此点到为止。



--

※ 来源:·BBS 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 99.]

[首页] [上页][下页][末页] [分页:1 2 3 ]
[快速返回] [ 进入葵花宝典讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996