Redian新闻
>
抓住了问题的本质,才能知道如何讨论问题
avatar
抓住了问题的本质,才能知道如何讨论问题# Programming - 葵花宝典
d*n
1
各位大侠:
去年OPT转H1B,OPT应该有前5000的免税,可是那个会计师不知道,我当时也不知道。
文件已经提交上去了。有什么可以补救的方法么?
我今天告诉了那个会计师,她以工作忙说只能等5月审计发现问题,再重新提交。但问
题是这也不是什么错误,是可有可无的东西,不见得审计会发现这个问题。
她现在是不管不问了,今天最后一天,非常着急,我该怎么办呢?
谢谢各位啊
avatar
A*y
2
不打游戏的话,某个id去年配的那台CPU是frys50块钱买的赛扬E3200板子是frys标价49
交钱的时候却只收23型号忘了的uATX内存是朋友淘汰下来的不知道值多少钱的DDR2两条
2G的光驱是用了七八年的旧DVD还能刻录的硬盘是frys摆在门口一大堆不管三七二十一
抓了一個就走机箱电源用老电脑的当时也是30来块钱买的电脑能做的事情
我人脑就全对付了
avatar
T*i
3
这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不需
要算账,运气是第一生产力。
讨论了这么多,没触及到问题的本质。
io为什么要nonblocking啊?blocking行不行?有什么优点和缺点?
为啥要async?和nonblocking有啥不一样?sync行不行?
能回答这些问题,才是会算账的。
avatar
a*n
4
take it easy,
after u receive the refund,
file 1040x

【在 d*****n 的大作中提到】
: 各位大侠:
: 去年OPT转H1B,OPT应该有前5000的免税,可是那个会计师不知道,我当时也不知道。
: 文件已经提交上去了。有什么可以补救的方法么?
: 我今天告诉了那个会计师,她以工作忙说只能等5月审计发现问题,再重新提交。但问
: 题是这也不是什么错误,是可有可无的东西,不见得审计会发现这个问题。
: 她现在是不管不问了,今天最后一天,非常着急,我该怎么办呢?
: 谢谢各位啊

avatar
l*m
5
大部分公司乱折腾的主要原因是底下的人要升职

:这些工程问题都是决策问题。和做生意一样。正确的决策都是算账的结果。乱决策不
需要算账,运气是第一生产力。
avatar
f*l
6
就是file 一个1040x就好了,常发生的事情。
avatar
s*e
7
希望有人 给出答案啊!!
正在学习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行不行?
: 能回答这些问题,才是会算账的。

avatar
d*n
8
谢谢啦!!
还有一个问题,她给我报了两个表,一个 1040,一个 1040NR。说是OPT和H1B不一样。
报完后,我听朋友说只能报一个表格。 不能这么报的。 是这样么?
如果是这样,这个会计师在给我保税时,出了这两个问题。
我现在能做的,是不是只有等拿到refund后,file1040x,这两个问题就都可以解决呢?

【在 a*****n 的大作中提到】
: take it easy,
: after u receive the refund,
: file 1040x

avatar
T*i
9
继续提问:
如果项目需求只需要一个网络连接,怎么做最好?为什么?
如果一个服务器要2M网络连接呢?平均每个连接每秒发1个消息。怎么做?为什么?各
种方案的性能上限是多少?
关键是这个"为什么"?
avatar
a*n
10
找会计师退钱,她乱来,
如果不退钱就sue她

呢?

【在 d*****n 的大作中提到】
: 谢谢啦!!
: 还有一个问题,她给我报了两个表,一个 1040,一个 1040NR。说是OPT和H1B不一样。
: 报完后,我听朋友说只能报一个表格。 不能这么报的。 是这样么?
: 如果是这样,这个会计师在给我保税时,出了这两个问题。
: 我现在能做的,是不是只有等拿到refund后,file1040x,这两个问题就都可以解决呢?

avatar
m*n
11
本质应该是硬件的制约
很多编程框架都是费一种硬件,来减轻另一种硬件的压力
例如async就是费内存,省CPU
avatar
l*n
12
a u kidding me?
一年只能有一种状态,不是ra就是nr.
具体是哪种状态,你要做一个test就知道了。
你交了两个1040表,就是报了两次税,一个要被denied。

呢?

【在 d*****n 的大作中提到】
: 谢谢啦!!
: 还有一个问题,她给我报了两个表,一个 1040,一个 1040NR。说是OPT和H1B不一样。
: 报完后,我听朋友说只能报一个表格。 不能这么报的。 是这样么?
: 如果是这样,这个会计师在给我保税时,出了这两个问题。
: 我现在能做的,是不是只有等拿到refund后,file1040x,这两个问题就都可以解决呢?

avatar
h*c
13
Nonblocking IO是为了解决C10k问题才火起来的
avatar
P*D
14
如果你是按dual status报的话,这两个表都要交,但“报税”的表是1040,1040NR算
是1040的补充材料,1040NR上面显示的是你OPT期间的收入,最终应缴税款之类的显示
在1040上。
我09年也是dual status,就是这么报的,没问题。但现在问题是你的会计师到底给你
报的是dual status还是non-resident alien,这个你要跟他去问清楚。如果是后者你
又交了两张表,那就乱套了,后果不知道。
另外刚变成H-1B就请会计师报税,隐性BSO挣得多。这种BSO行为要坚决打击!

呢?

【在 d*****n 的大作中提到】
: 谢谢啦!!
: 还有一个问题,她给我报了两个表,一个 1040,一个 1040NR。说是OPT和H1B不一样。
: 报完后,我听朋友说只能报一个表格。 不能这么报的。 是这样么?
: 如果是这样,这个会计师在给我保税时,出了这两个问题。
: 我现在能做的,是不是只有等拿到refund后,file1040x,这两个问题就都可以解决呢?

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


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

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

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

: :



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

avatar
P*D
16
That's incorrect. You can choose to be treated as a resident alien for part
of the year provided you meet certain criteria.

【在 l**n 的大作中提到】
: a u kidding me?
: 一年只能有一种状态,不是ra就是nr.
: 具体是哪种状态,你要做一个test就知道了。
: 你交了两个1040表,就是报了两次税,一个要被denied。
:
: 呢?

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

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

avatar
T*i
18
其实我一直在等有人说出那关键的两个词。现在还没人说出来。
avatar
d*c
19
串行概念简单,并行性能高,但是容易有各种冲突,需要解决,很多时候的解决方案又
是通过lock来回到串行概念。
IO明显比cpu慢几个数量级,这时用nonblocking就是用并行的方式,哪怕是在单机,但
是把IO当成另外一个处理器,不再等待可以提高性能,当然也需要注意维护正确性。这
种方式不是传统OS支持的,所以在语言和框架里实现。
轻量级线程之类是另一个路子,解决更加通用的问题。
node.js使劲吹这个,就是为了扭转别人对js做服务端性能不足的印象,广告做的够多
,所以大家印象比较深。
avatar
T*x
20
我就等你说答案了。。。。然后再说,跟我说的等价。:)

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

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

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

avatar
p*u
23
context switching and state management

【在 s********k 的大作中提到】
: 老魏不要卖关子了直接科普把
avatar
T*i
24
很简单啊,一个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 的大作中提到】
: 老魏不要卖关子了直接科普把
avatar
T*i
25
其实教科书写的都对。当然教科书基本啥都没写。至于有没有教对,或者有没有学对就
另说了。
下面给你们说一个开脑洞的。本人版权所有。
其实最简单,效率最高的是polling,不是中断或者callback。理解这个有困难要解放
你的思想。反正CPU闲着也是闲着。要是用100W的功耗换多一倍甚至10倍的throughput
,而且写的代码最少最容易懂,你干不干?
说到此点到为止。
avatar
w*y
26
对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行不行?
: 能回答这些问题,才是会算账的。

avatar
w*y
27
哦,原来大家在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效率高多了。

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

throughput

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

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

throughput

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

avatar
l*s
30
please accept my knees :-)

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

throughput

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

avatar
l*m
32
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用起来简单,实现比较费事,但比较可靠。
: 大家批判一下。

avatar
T*i
33
你开什么玩笑?我的设备上一个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

avatar
T*i
34
DPDK才2010年开始。polling很早就被我玩滥了。

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

avatar
s*k
35
sleep wakeup poll 这样搞应该就可以了啊

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

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

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

avatar
p*u
37
edge vs level triggered epoll

blocking

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

avatar
T*i
38
这就是OS干的活儿啊。我的iot设备都是有OS的。而是是硬实时OS。


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



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


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

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

: 还有nonblocking...



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

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

如果

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

avatar
s*k
41
给OS两个Core是怎么来的?一个读写本地,一个读写网络?

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

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

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


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

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

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

: blocking



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

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


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

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

: 够了

: 如果



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

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


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

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

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

: blocking



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

avatar
g*t
46
他这句话

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


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

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

: throughput



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

avatar
s*k
47
现在的多core OS,一般来说OS和app core的分配是怎么做的?是OS pin to core吗?

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

avatar
x*u
48
从DOS时代开始所有的IO都是原生非block的

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

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

【在 x****u 的大作中提到】
: 从DOS时代开始所有的IO都是原生非block的
avatar
T*i
50
多核调度本来就是NP问题,做不出通用的才会有各种扯淡。
你看看这个:
Brain Fuck Scheduler
https://en.wikipedia.org/wiki/Brain_Fuck_Scheduler

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

avatar
T*i
51
取决于scheduler。缺省都不是pin to core。

【在 s********k 的大作中提到】
: 现在的多core OS,一般来说OS和app core的分配是怎么做的?是OS pin to core吗?
avatar
c*v
52
这些东西都没有加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,然后中断作为一个牛逼技术在新的一章里介绍。

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

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

avatar
c*v
54
很多时候大厂项目完全是胡扯八道。胜利是因为资本。

solution。

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

avatar
T*i
55
都kernel bypass了,不poll难道还用interrupt不成?
简单二选一而已。

solution。

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

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

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

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

【在 x****u 的大作中提到】
: 从DOS时代开始所有的IO都是原生非block的
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。