由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 抓住了问题的本质,才能知道如何讨论问题
相关主题
go channel和clojure core.async哪个好从coffee,scala等到golang效率下降了好几倍
[bssd] Go 的大并发处理网络碰到两个个问题Go的并发和channel看上去非常厉害啊
写backend的朋友还是可以关注一下golanggo里面channel和wait group用法比较
goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大golang為什麼語法和關鍵詞這麼冷門?
看了一下Meteor很不错scala的基于future并行async程序怎么写
说了半天异步是大势所趋没什么疑问了Typescript是不是实际上反 functional programming 的?
我来说说go的目标对手吧how to debug
golang的问题是channel, goroutine里面magic太多,开始折腾DPDK+mTCP
相关话题的讨论汇总
话题: polling话题: io话题: os话题: ns话题: br
进入Programming版参与讨论
1 (共1页)
T********i
发帖数: 2416
1
这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不需
要算账,运气是第一生产力。
讨论了这么多,没触及到问题的本质。
io为什么要nonblocking啊?blocking行不行?有什么优点和缺点?
为啥要async?和nonblocking有啥不一样?sync行不行?
能回答这些问题,才是会算账的。
l*******m
发帖数: 1096
2
大部分公司乱折腾的主要原因是底下的人要升职

:这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不
需要算账,运气是第一生产力。
s******e
发帖数: 13
3
希望有人 给出答案啊!!
正在学习IO。公司用的.net 开发的 stream server:处理camera的server
一个server 运行在一个PC上。server 最多能连200个camera。
就是说 同时200 个 camera stream 同时进入PC。
正在学习,为啥只能连200个? 看了看iocp。 发现iocp 用几个thread loop IO 做的。
再往深了,还没学到。

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

T********i
发帖数: 2416
4
继续提问:
如果项目需求只需要一个网络连接,怎么做最好?为什么?
如果一个服务器要2M网络连接呢?平均每个连接每秒发1个消息。怎么做?为什么?各
种方案的性能上限是多少?
关键是这个"为什么"?
m*****n
发帖数: 3575
5
本质应该是硬件的制约
很多编程框架都是费一种硬件,来减轻另一种硬件的压力
例如async就是费内存,省CPU
h**c
发帖数: 1979
6
Nonblocking IO是为了解决C10k问题才火起来的
g****t
发帖数: 31659
7
对的。还有一半的情况是manager要向底下的人要假项目。
不然director问起来manager,"你干啥了?”
那这manager总不能天天说我忙着裁员重组了。


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

: :这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱
决策不

: 需要算账,运气是第一生产力。

: :



【在 l*******m 的大作中提到】
: 大部分公司乱折腾的主要原因是底下的人要升职
:
: :这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不
: 需要算账,运气是第一生产力。
: :

s********k
发帖数: 6180
8
老魏好问题啊
1.IO为什么要nonblocking,这个可能大部分人理解,要不然blocking thread在IO时候
空转等待IO完成消耗CPU资源又没真正工作。
2. async可以基于nonblocking理解,那么我现在nonblocking把资源让出来了,我怎么
知道我这个thread的IO什么时候完成?是需要我去隔断时间看看?还是直接OS完成了之
后告诉我

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

T********i
发帖数: 2416
9
其实我一直在等有人说出那关键的两个词。现在还没人说出来。
d******c
发帖数: 2407
10
串行概念简单,并行性能高,但是容易有各种冲突,需要解决,很多时候的解决方案又
是通过lock来回到串行概念。
IO明显比cpu慢几个数量级,这时用nonblocking就是用并行的方式,哪怕是在单机,但
是把IO当成另外一个处理器,不再等待可以提高性能,当然也需要注意维护正确性。这
种方式不是传统OS支持的,所以在语言和框架里实现。
轻量级线程之类是另一个路子,解决更加通用的问题。
node.js使劲吹这个,就是为了扭转别人对js做服务端性能不足的印象,广告做的够多
,所以大家印象比较深。
相关主题
我来说说go的目标对手吧Go的并发和channel看上去非常厉害啊
golang的问题是channel, goroutine里面magic太多,go里面channel和wait group用法比较
从coffee,scala等到golang效率下降了好几倍golang為什麼語法和關鍵詞這麼冷門?
进入Programming版参与讨论
T*******x
发帖数: 8565
11
我就等你说答案了。。。。然后再说,跟我说的等价。:)

【在 T********i 的大作中提到】
: 其实我一直在等有人说出那关键的两个词。现在还没人说出来。
T********i
发帖数: 2416
12
反正目前为止还没有靠谱的。
这下子问题大了。这么简单的问题根源,跟数学基本没有任何鸟关系,竟然就是没人说
出来。也是醉了。

【在 T*******x 的大作中提到】
: 我就等你说答案了。。。。然后再说,跟我说的等价。:)
s********k
发帖数: 6180
13
老魏不要卖关子了直接科普把

【在 T********i 的大作中提到】
: 反正目前为止还没有靠谱的。
: 这下子问题大了。这么简单的问题根源,跟数学基本没有任何鸟关系,竟然就是没人说
: 出来。也是醉了。

p*u
发帖数: 2454
14
context switching and state management

【在 s********k 的大作中提到】
: 老魏不要卖关子了直接科普把
T********i
发帖数: 2416
15
很简单啊,一个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内存也不值钱。


: 老魏不要卖关子了直接科普把



【在 s********k 的大作中提到】
: 老魏不要卖关子了直接科普把
T********i
发帖数: 2416
16
其实教科书写的都对。当然教科书基本啥都没写。至于有没有教对,或者有没有学对就
另说了。
下面给你们说一个开脑洞的。本人版权所有。
其实最简单,效率最高的是polling,不是中断或者callback。理解这个有困难要解放
你的思想。反正CPU闲着也是闲着。要是用100W的功耗换多一倍甚至10倍的throughput
,而且写的代码最少最容易懂,你干不干?
说到此点到为止。
w*******y
发帖数: 372
17
对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用起来简单,实现比较费事,但比较可靠。
大家批判一下。

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

w*******y
发帖数: 372
18
哦,原来大家在OS里面讨论。对不住,跑题了。

【在 T********i 的大作中提到】
: 很简单啊,一个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效率高多了。

w*******y
发帖数: 372
19
嗯,这个做过测试。polling的代价微乎其微,测几个bits而已。

throughput

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

w***g
发帖数: 5958
20
老魏你上面这个帖子真牛。能说出来啥操作要多少纳秒就是牛,我反正说不出来。
不过polling这个,DPDK最高效的做法就是polling吧,应该不能算你版权所有。

throughput

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

相关主题
scala的基于future并行async程序怎么写开始折腾DPDK+mTCP
Typescript是不是实际上反 functional programming 的?profile 一个golang project 生成一个call graph
how to debug用数据库做蒙特卡洛模拟的问题
进入Programming版参与讨论
l*********s
发帖数: 5409
21
please accept my knees :-)

【在 p*u 的大作中提到】
: context switching and state management
s********k
发帖数: 6180
22
老魏你做智能家居确实直接用个while loop poll最好,其他context switch是瞎扯,
但是现代复杂的OS也能这么做?

throughput

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

l*******m
发帖数: 1096
23
Jeff Dean 一直有个表
Latency numbers every programmer should know
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns
Compress 1K bytes with Zippy ............. 3,000 ns = 3 μs
Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 μs
SSD random read ........................ 150,000 ns = 150 μs
Read 1 MB sequentially from memory ..... 250,000 ns = 250 μs
Round trip within same datacenter ...... 500,000 ns = 0.5 ms
Read 1 MB sequentially from SSD* ..... 1,000,000 ns = 1 ms
Disk seek ........................... 10,000,000 ns = 10 ms
Read 1 MB sequentially from disk .... 20,000,000 ns = 20 ms
Send packet CA->Netherlands->CA .... 150,000,000 ns = 150 ms
https://gist.github.com/hellerbarde/2843375

【在 w*******y 的大作中提到】
: 对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用起来简单,实现比较费事,但比较可靠。
: 大家批判一下。

T********i
发帖数: 2416
24
你开什么玩笑?我的设备上一个MCU,32MHz arm cortex M3。memory 32K。那个功耗是
我自己管理的。怎么可能简单while loop poll?我还要电池用好几年呢。、
现代OS这样做反倒没问题。我说过了,给OS 2个core,剩下62个core自己玩好了。

【在 s********k 的大作中提到】
: 老魏你做智能家居确实直接用个while loop poll最好,其他context switch是瞎扯,
: 但是现代复杂的OS也能这么做?
:
: throughput

T********i
发帖数: 2416
25
DPDK才2010年开始。polling很早就被我玩滥了。

【在 w***g 的大作中提到】
: 老魏你上面这个帖子真牛。能说出来啥操作要多少纳秒就是牛,我反正说不出来。
: 不过polling这个,DPDK最高效的做法就是polling吧,应该不能算你版权所有。
:
: throughput

s********k
发帖数: 6180
26
sleep wakeup poll 这样搞应该就可以了啊

【在 T********i 的大作中提到】
: 你开什么玩笑?我的设备上一个MCU,32MHz arm cortex M3。memory 32K。那个功耗是
: 我自己管理的。怎么可能简单while loop poll?我还要电池用好几年呢。、
: 现代OS这样做反倒没问题。我说过了,给OS 2个core,剩下62个core自己玩好了。

l*******m
发帖数: 1096
27
polling是很老的概念了。网络性能分析课倒是讲等比较深,OS课基本不讲。如果
devices太多,或者是traffic太小,polling就不核算了。其实polling也分 blocking
还有nonblocking...

【在 w***g 的大作中提到】
: 老魏你上面这个帖子真牛。能说出来啥操作要多少纳秒就是牛,我反正说不出来。
: 不过polling这个,DPDK最高效的做法就是polling吧,应该不能算你版权所有。
:
: throughput

p*u
发帖数: 2454
28
edge vs level triggered epoll

blocking

【在 l*******m 的大作中提到】
: polling是很老的概念了。网络性能分析课倒是讲等比较深,OS课基本不讲。如果
: devices太多,或者是traffic太小,polling就不核算了。其实polling也分 blocking
: 还有nonblocking...

T********i
发帖数: 2416
29
这就是OS干的活儿啊。我的iot设备都是有OS的。而是是硬实时OS。


: sleep wakeup poll 这样搞应该就可以了啊



【在 s********k 的大作中提到】
: sleep wakeup poll 这样搞应该就可以了啊
T********i
发帖数: 2416
30
polling当然也是各种奇技淫巧。就算我说polling最有效,不会写的照样写不出来。
你们所有的应用,只不过一个网络IO,一个磁盘IO。剩下的就是计算。我的一个设备挂
的传感器种类都比这个多。


: polling是很老的概念了。网络性能分析课倒是讲等比较深,OS课基本不讲。如果

: devices太多,或者是traffic太小,polling就不核算了。其实polling也分
blocking

: 还有nonblocking...



【在 l*******m 的大作中提到】
: polling是很老的概念了。网络性能分析课倒是讲等比较深,OS课基本不讲。如果
: devices太多,或者是traffic太小,polling就不核算了。其实polling也分 blocking
: 还有nonblocking...

相关主题
只有状态自动机(state machine)是正确的编程模型[bssd] Go 的大并发处理网络碰到两个个问题
magagop可以看看这些基本golang scheduler的资料写backend的朋友还是可以关注一下golang
go channel和clojure core.async哪个好goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大
进入Programming版参与讨论
l*******m
发帖数: 1096
31
我肯定就写不出来,没经验的人坑太多,只能吹吹牛。估计设备多了,需要priority
polling,而且是自动均衡的。给嘴大的人吹,就是AI-based scheduling,其实数数就
够了

如果

【在 T********i 的大作中提到】
: polling当然也是各种奇技淫巧。就算我说polling最有效,不会写的照样写不出来。
: 你们所有的应用,只不过一个网络IO,一个磁盘IO。剩下的就是计算。我的一个设备挂
: 的传感器种类都比这个多。
:
:
: polling是很老的概念了。网络性能分析课倒是讲等比较深,OS课基本不讲。如果
:
: devices太多,或者是traffic太小,polling就不核算了。其实polling也分
: blocking
:
: 还有nonblocking...
:

s********k
发帖数: 6180
32
给OS两个Core是怎么来的?一个读写本地,一个读写网络?

【在 T********i 的大作中提到】
: 你开什么玩笑?我的设备上一个MCU,32MHz arm cortex M3。memory 32K。那个功耗是
: 我自己管理的。怎么可能简单while loop poll?我还要电池用好几年呢。、
: 现代OS这样做反倒没问题。我说过了,给OS 2个core,剩下62个core自己玩好了。

T********i
发帖数: 2416
33
一个core都不给OS,能boot起来么?
那俩core就是打酱油的。运行一些现成的程序而已。要不然你都ssh不上去。

【在 s********k 的大作中提到】
: 给OS两个Core是怎么来的?一个读写本地,一个读写网络?
g****t
发帖数: 31659
34
Android手机有20个传感器。你有多少个?


: polling当然也是各种奇技淫巧。就算我说polling最有效,不会写的照样
写不出
来。

: 你们所有的应用,只不过一个网络IO,一个磁盘IO。剩下的就是计算。我
的一个
设备挂

: 的传感器种类都比这个多。

: blocking



【在 T********i 的大作中提到】
: 一个core都不给OS,能boot起来么?
: 那俩core就是打酱油的。运行一些现成的程序而已。要不然你都ssh不上去。

g****t
发帖数: 31659
35
我觉得这个不是嘴吹的。例如我可以拍一个红外线图。哪块热的趋势往上走,我就优先
级放后面些。有了一贞一真的红外线图随时间演化图,我可以给板子的散热建模。然后
反过来告诉你应该走CPU算法还是memory算法。
给板子拍这种图,以及芯片散热模型什么的属于古代技术。有现成的办法。这个技术其
实数据中心用起来挺实用。


: 我肯定就写不出来,没经验的人坑太多,只能吹吹牛。估计设备多了,需要
priority

: polling,而且是自动均衡的。给嘴大的人吹,就是AI-based scheduling
,其实
数数就

: 够了

: 如果



【在 l*******m 的大作中提到】
: 我肯定就写不出来,没经验的人坑太多,只能吹吹牛。估计设备多了,需要priority
: polling,而且是自动均衡的。给嘴大的人吹,就是AI-based scheduling,其实数数就
: 够了
:
: 如果

g****t
发帖数: 31659
36
你只能写特定于你的特定应用的schedule。写不出通用
系统的schedule。
首先java app服务器的人就用不上你的schedule。找好几个老印,一个人鸡毛问题跟你
扯皮两个月。你连技术指标都定不下来。


: polling当然也是各种奇技淫巧。就算我说polling最有效,不会写的照样
写不出
来。

: 你们所有的应用,只不过一个网络IO,一个磁盘IO。剩下的就是计算。我
的一个
设备挂

: 的传感器种类都比这个多。

: blocking



【在 T********i 的大作中提到】
: 一个core都不给OS,能boot起来么?
: 那俩core就是打酱油的。运行一些现成的程序而已。要不然你都ssh不上去。

g****t
发帖数: 31659
37
他这句话

golang的goroutine,则是模拟thread,但是switch比context switch效率高多了。
"
我有疑问。之前不是有个ARM的哥们说goroutine 测过没有吹的好。


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

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

: throughput



【在 w***g 的大作中提到】
: 老魏你上面这个帖子真牛。能说出来啥操作要多少纳秒就是牛,我反正说不出来。
: 不过polling这个,DPDK最高效的做法就是polling吧,应该不能算你版权所有。
:
: throughput

s********k
发帖数: 6180
38
现在的多core OS,一般来说OS和app core的分配是怎么做的?是OS pin to core吗?

【在 T********i 的大作中提到】
: 一个core都不给OS,能boot起来么?
: 那俩core就是打酱油的。运行一些现成的程序而已。要不然你都ssh不上去。

x****u
发帖数: 44466
39
从DOS时代开始所有的IO都是原生非block的

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

w***g
发帖数: 5958
40
所以说, 所有的design choice其实创世的时候都有了,
看什么年代短板转到了哪儿就会有啥主流技术。
DOS下面显然也有原生的polling。这个也不是啥新鲜事。
中断需要特殊电路,CPU需要在每条指令完成后查寄存器
状态决定。学体系结构的时候写汇编语言,肯定都是先写
polling,然后中断作为一个牛逼技术在新的一章里介绍。

【在 x****u 的大作中提到】
: 从DOS时代开始所有的IO都是原生非block的
相关主题
看了一下Meteor很不错golang的问题是channel, goroutine里面magic太多,
说了半天异步是大势所趋没什么疑问了从coffee,scala等到golang效率下降了好几倍
我来说说go的目标对手吧Go的并发和channel看上去非常厉害啊
进入Programming版参与讨论
T********i
发帖数: 2416
41
多核调度本来就是NP问题,做不出通用的才会有各种扯淡。
你看看这个:
Brain Fuck Scheduler
https://en.wikipedia.org/wiki/Brain_Fuck_Scheduler

【在 g****t 的大作中提到】
: 你只能写特定于你的特定应用的schedule。写不出通用
: 系统的schedule。
: 首先java app服务器的人就用不上你的schedule。找好几个老印,一个人鸡毛问题跟你
: 扯皮两个月。你连技术指标都定不下来。
:
:
: polling当然也是各种奇技淫巧。就算我说polling最有效,不会写的照样
: 写不出
: 来。
:
: 你们所有的应用,只不过一个网络IO,一个磁盘IO。剩下的就是计算。我
: 的一个

T********i
发帖数: 2416
42
取决于scheduler。缺省都不是pin to core。

【在 s********k 的大作中提到】
: 现在的多core OS,一般来说OS和app core的分配是怎么做的?是OS pin to core吗?
c*******v
发帖数: 2599
43
这些东西都没有加AI based decision making技术。例如以预测为基础的reforcement
loop learning。
未来应该都会加上。倒不是说一定会好过古代决定论的技术。AI一大好处是约束容易做
接口。
例如手机不发热,OS调度该怎么做?普通用户无法负担analystic heating model为基
础的
做法。但是设计一个调度办法,温度高的时候少用CPU耗费多的noblocking API,多用
耗费内存多的
noblocking API,这个完全可以做到。

【在 w***g 的大作中提到】
: 所以说, 所有的design choice其实创世的时候都有了,
: 看什么年代短板转到了哪儿就会有啥主流技术。
: DOS下面显然也有原生的polling。这个也不是啥新鲜事。
: 中断需要特殊电路,CPU需要在每条指令完成后查寄存器
: 状态决定。学体系结构的时候写汇编语言,肯定都是先写
: polling,然后中断作为一个牛逼技术在新的一章里介绍。

n******t
发帖数: 4406
44
DPDK是非常晚才出來的poll framework.
每個08-09年搞hft的人都知道這個事情。說實話我並沒有覺得這個是個很好的solution。
此外,mellenox搞了n久的這個東西,並沒有流行,這種事情,只有intel這種大廠才能
搞pr.

【在 w***g 的大作中提到】
: 老魏你上面这个帖子真牛。能说出来啥操作要多少纳秒就是牛,我反正说不出来。
: 不过polling这个,DPDK最高效的做法就是polling吧,应该不能算你版权所有。
:
: throughput

c*******v
发帖数: 2599
45
很多时候大厂项目完全是胡扯八道。胜利是因为资本。

solution。

【在 n******t 的大作中提到】
: DPDK是非常晚才出來的poll framework.
: 每個08-09年搞hft的人都知道這個事情。說實話我並沒有覺得這個是個很好的solution。
: 此外,mellenox搞了n久的這個東西,並沒有流行,這種事情,只有intel這種大廠才能
: 搞pr.

T********i
发帖数: 2416
46
都kernel bypass了,不poll难道还用interrupt不成?
简单二选一而已。

solution。

【在 n******t 的大作中提到】
: DPDK是非常晚才出來的poll framework.
: 每個08-09年搞hft的人都知道這個事情。說實話我並沒有覺得這個是個很好的solution。
: 此外,mellenox搞了n久的這個東西,並沒有流行,這種事情,只有intel這種大廠才能
: 搞pr.

n******t
发帖数: 4406
47
我說了,想通了的人都是自然的事情。
沒想通的人,就是一團漿糊,而且誰要幫他搞清楚他就咬誰。

【在 T********i 的大作中提到】
: 都kernel bypass了,不poll难道还用interrupt不成?
: 简单二选一而已。
:
: solution。

b*******s
发帖数: 5216
48
这类问题都是什么?都是人工代替系统来规划资源调度策略的问题。实际上理解了需求
特性后一共也没几种选择。
现在做hft,这种类型的技巧都不是太新鲜的东西了
b***i
发帖数: 3043
49
啥意思?不懂。难道还有block的?

【在 x****u 的大作中提到】
: 从DOS时代开始所有的IO都是原生非block的
1 (共1页)
进入Programming版参与讨论
相关主题
profile 一个golang project 生成一个call graph看了一下Meteor很不错
用数据库做蒙特卡洛模拟的问题说了半天异步是大势所趋没什么疑问了
只有状态自动机(state machine)是正确的编程模型我来说说go的目标对手吧
magagop可以看看这些基本golang scheduler的资料golang的问题是channel, goroutine里面magic太多,
go channel和clojure core.async哪个好从coffee,scala等到golang效率下降了好几倍
[bssd] Go 的大并发处理网络碰到两个个问题Go的并发和channel看上去非常厉害啊
写backend的朋友还是可以关注一下golanggo里面channel和wait group用法比较
goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大golang為什麼語法和關鍵詞這麼冷門?
相关话题的讨论汇总
话题: polling话题: io话题: os话题: ns话题: br