T******7 发帖数: 1419 | 1 学习了陈硕的书 感觉这么搞自己会头爆炸 老板也会崩溃
大家有看过的么 或者说说工作中的体会?
★ 发自iPhone App: ChineseWeb 7.8 |
h*******s 发帖数: 8454 | 2 why?
【在 T******7 的大作中提到】 : 学习了陈硕的书 感觉这么搞自己会头爆炸 老板也会崩溃 : 大家有看过的么 或者说说工作中的体会? : ★ 发自iPhone App: ChineseWeb 7.8
|
x****u 发帖数: 44466 | 3 C++多线程都是大忌,何况还要搞网络服务。
【在 T******7 的大作中提到】 : 学习了陈硕的书 感觉这么搞自己会头爆炸 老板也会崩溃 : 大家有看过的么 或者说说工作中的体会? : ★ 发自iPhone App: ChineseWeb 7.8
|
p*u 发帖数: 2454 | 4
Google won't agree with you on this.
【在 x****u 的大作中提到】 : C++多线程都是大忌,何况还要搞网络服务。
|
k**********g 发帖数: 989 | 5
In the past (10 years ago), when people talk about multithreading they
wouldn't say "message queue" as the #1 most important abstraction.
Now people who don't say it's the #1 don't get the chance to work on C++
multithreading.
Well, most people don't get the chance to work on C++ anymore, so that may
not matter much.
(Because C++ don't get the chance to do work anymore.)
【在 p*u 的大作中提到】 : : Google won't agree with you on this.
|
c****3 发帖数: 10787 | 6 那么多人上线的网游服务器拿啥写的?
【在 T******7 的大作中提到】 : 学习了陈硕的书 感觉这么搞自己会头爆炸 老板也会崩溃 : 大家有看过的么 或者说说工作中的体会? : ★ 发自iPhone App: ChineseWeb 7.8
|
n******t 发帖数: 4406 | 7 C++写多线程,就是需要用C写多线程完全没问题的能力+有折腾语言的耐心。
这种人,就我所知,千里挑一。
【在 T******7 的大作中提到】 : 学习了陈硕的书 感觉这么搞自己会头爆炸 老板也会崩溃 : 大家有看过的么 或者说说工作中的体会? : ★ 发自iPhone App: ChineseWeb 7.8
|
c****3 发帖数: 10787 | 8 忘了一个重要的平台,Windows。
Windows平台下没得多少选,用c#毕竟性能差点。用纯C + Win32写,稍微累点。
Windows下的网络服务,追求高性能,还是用C++写的多。
【在 n******t 的大作中提到】 : C++写多线程,就是需要用C写多线程完全没问题的能力+有折腾语言的耐心。 : 这种人,就我所知,千里挑一。
|
T******7 发帖数: 1419 | 9 Java哭了
★ 发自iPhone App: ChineseWeb 7.8
【在 c****3 的大作中提到】 : 忘了一个重要的平台,Windows。 : Windows平台下没得多少选,用c#毕竟性能差点。用纯C + Win32写,稍微累点。 : Windows下的网络服务,追求高性能,还是用C++写的多。
|
c****3 发帖数: 10787 | 10 Windows 对Java可不友好,在Windows里搞java程序,只有增加痛苦
【在 T******7 的大作中提到】 : Java哭了 : : ★ 发自iPhone App: ChineseWeb 7.8
|
|
|
l*********s 发帖数: 5409 | 11 how so? jvm shall have shielded away OS specific details.
【在 c****3 的大作中提到】 : Windows 对Java可不友好,在Windows里搞java程序,只有增加痛苦
|
c****3 发帖数: 10787 | 12 因为是多线程,网络程序吗。Windows的线程模式和网络编程和Linux里面很不一样。纯
BSD的scoket或者posix API,在Windows下都工作的很差,有很多限制。必须用Windows
Native API才能工作的好。
所以基本上跨平台的程序,在Linux运行好,到Windows里就会运行很差。两边都运行好
,基本要做两套,为两种系统分别优化,很费时间。所以极少两边都能运行好的,尤其
是服务器类需要高性能的网络程序。
【在 l*********s 的大作中提到】 : how so? jvm shall have shielded away OS specific details.
|
x****u 发帖数: 44466 | 13 纯socket在UNIX上工作的也很不好,必须要用对等的本地API。
Windows
【在 c****3 的大作中提到】 : 因为是多线程,网络程序吗。Windows的线程模式和网络编程和Linux里面很不一样。纯 : BSD的scoket或者posix API,在Windows下都工作的很差,有很多限制。必须用Windows : Native API才能工作的好。 : 所以基本上跨平台的程序,在Linux运行好,到Windows里就会运行很差。两边都运行好 : ,基本要做两套,为两种系统分别优化,很费时间。所以极少两边都能运行好的,尤其 : 是服务器类需要高性能的网络程序。
|
x****u 发帖数: 44466 | 14 现在都哪一年了
【在 c****3 的大作中提到】 : Windows 对Java可不友好,在Windows里搞java程序,只有增加痛苦
|
x****u 发帖数: 44466 | 15 C++对Google没那么重要
【在 p*u 的大作中提到】 : : Google won't agree with you on this.
|
T******7 发帖数: 1419 | 16 google核心产品都是c++写的。
【在 x****u 的大作中提到】 : C++对Google没那么重要
|
n******t 发帖数: 4406 | 17 没这回事。。。port过无数Linux到BSD/AIX/Solaris上,
大部分直接就能编译,有点怪的也是几个小时到一两天的活。
【在 x****u 的大作中提到】 : 纯socket在UNIX上工作的也很不好,必须要用对等的本地API。 : : Windows
|
c****3 发帖数: 10787 | 18 还有一点,Windows的创建个进程时间都是重量级的,线程是轻量级的,Windows内核直
接调度线程,不是进程。
Linux进程创建开销还是挺小的,有个ftp服务器叫vsftpd,一个连接fork两个进程,在
Linux下搞几千个连接没有任何问题,在Windows里这么用直接就崩了。所以Linux程序
凡是直接port到Windows的,都性能极差,这倒不是因为Windows差,而是两者差别太大。
【在 x****u 的大作中提到】 : 纯socket在UNIX上工作的也很不好,必须要用对等的本地API。 : : Windows
|
x****u 发帖数: 44466 | 19 想追求高性能必须要用IOCP,这个怎么办?
【在 n******t 的大作中提到】 : 没这回事。。。port过无数Linux到BSD/AIX/Solaris上, : 大部分直接就能编译,有点怪的也是几个小时到一两天的活。
|
x****u 发帖数: 44466 | 20 原因解释错误。
NT进程比Linux更加轻量,Win32进程和Linux的差不多。你遇到的问题是出在进程创建
上,Win32的进程创建是用户态实现的复杂过程,涉及IPC通讯。如果你非要狂开进程,
这个地方得自己擦屁股。
大。
【在 c****3 的大作中提到】 : 还有一点,Windows的创建个进程时间都是重量级的,线程是轻量级的,Windows内核直 : 接调度线程,不是进程。 : Linux进程创建开销还是挺小的,有个ftp服务器叫vsftpd,一个连接fork两个进程,在 : Linux下搞几千个连接没有任何问题,在Windows里这么用直接就崩了。所以Linux程序 : 凡是直接port到Windows的,都性能极差,这倒不是因为Windows差,而是两者差别太大。
|
|
|
n******t 发帖数: 4406 | 21 其实啊,99%的程序只要好好写,POSIX API足以,
剩下那百分之一的,如果前面那99%的程序用POSIX写不好的人,
给他再fancy的新东西,也没有用。
【在 x****u 的大作中提到】 : 想追求高性能必须要用IOCP,这个怎么办?
|
x****u 发帖数: 44466 | 22 你C++程序不用fancy的特性,很可能跑不过Java呢。人家写JRE的可绝对不会放过。
【在 n******t 的大作中提到】 : 其实啊,99%的程序只要好好写,POSIX API足以, : 剩下那百分之一的,如果前面那99%的程序用POSIX写不好的人, : 给他再fancy的新东西,也没有用。
|
n******t 发帖数: 4406 | 23 好的系统程序员知道怎么规避这些限制。最后必须要用到
新的OS特性才行的情况,其实不多。就算要用,这些地方,
因为数量不多,写个wrapper就好了。
Java的问题,我说过了,根本不是很多人纠结的什么heap,stack这些问题。
Java不适合高性能的开发的关键点,在于这个语言不鼓励人把事情想清楚。
最后结果就是这个开发社区里的人大部分人不在乎所谓performance的问题。
这样的社区开发出来的东西,能跑快就有鬼了。
【在 x****u 的大作中提到】 : 你C++程序不用fancy的特性,很可能跑不过Java呢。人家写JRE的可绝对不会放过。
|
c****3 发帖数: 10787 | 24 高性能网络多线程程序,用POSIX的select()是不行的,这是C10K问题
【在 n******t 的大作中提到】 : 其实啊,99%的程序只要好好写,POSIX API足以, : 剩下那百分之一的,如果前面那99%的程序用POSIX写不好的人, : 给他再fancy的新东西,也没有用。
|
x****u 发帖数: 44466 | 25 JRE就是这样的wrapper。。。
很多C++程序员认为自己把performace想得很清楚了,实际上只是幻觉。
【在 n******t 的大作中提到】 : 好的系统程序员知道怎么规避这些限制。最后必须要用到 : 新的OS特性才行的情况,其实不多。就算要用,这些地方, : 因为数量不多,写个wrapper就好了。 : Java的问题,我说过了,根本不是很多人纠结的什么heap,stack这些问题。 : Java不适合高性能的开发的关键点,在于这个语言不鼓励人把事情想清楚。 : 最后结果就是这个开发社区里的人大部分人不在乎所谓performance的问题。 : 这样的社区开发出来的东西,能跑快就有鬼了。
|
l*********s 发帖数: 5409 | 26 RE, premature optimization is the root of evils. performance is important,
but there are other considerations like code readability.
I don't understand why to claim multi-threading in c++ as "mission
impossible": I know almost nothing about coding 1.5 years ago, but till now,
I have had ZERO projects(in c/c++) that is actually single threaded. The
fear is really an exaggeration.
【在 n******t 的大作中提到】 : 其实啊,99%的程序只要好好写,POSIX API足以, : 剩下那百分之一的,如果前面那99%的程序用POSIX写不好的人, : 给他再fancy的新东西,也没有用。
|
x****u 发帖数: 44466 | 27 你在家里自己造的轮子,肯定比不上车店卖的。
now,
【在 l*********s 的大作中提到】 : RE, premature optimization is the root of evils. performance is important, : but there are other considerations like code readability. : I don't understand why to claim multi-threading in c++ as "mission : impossible": I know almost nothing about coding 1.5 years ago, but till now, : I have had ZERO projects(in c/c++) that is actually single threaded. The : fear is really an exaggeration.
|
l*********s 发帖数: 5409 | 28 我不主张自己造轮子。但是,你要说肯定比不上那也太武断了。我觉得最有效的优化其
实不在于fancy的系统调用,而是对业务流程/商务逻辑上的优化和语言技术的结合。这
个,你车店里恐怕是买不到。
【在 x****u 的大作中提到】 : 你在家里自己造的轮子,肯定比不上车店卖的。 : : now,
|
x****u 发帖数: 44466 | 29 用JAVA写的应用逻辑,调度装载都是用人家的轮子,用C++写的怎么办?
【在 l*********s 的大作中提到】 : 我不主张自己造轮子。但是,你要说肯定比不上那也太武断了。我觉得最有效的优化其 : 实不在于fancy的系统调用,而是对业务流程/商务逻辑上的优化和语言技术的结合。这 : 个,你车店里恐怕是买不到。
|
c****3 发帖数: 10787 | 30 这是吹牛吧,JRE现在wrapper Windows iocp了,还是用传统的select吧?
【在 x****u 的大作中提到】 : JRE就是这样的wrapper。。。 : 很多C++程序员认为自己把performace想得很清楚了,实际上只是幻觉。
|
|
|
l*********s 发帖数: 5409 | 31 你举个应用逻辑轮子的例子?
【在 x****u 的大作中提到】 : 用JAVA写的应用逻辑,调度装载都是用人家的轮子,用C++写的怎么办?
|
N******K 发帖数: 10202 | 32 java诡异的就是 不鼓励人把事情想清楚 应该适合科学计算 不用考虑底层系统
结果很垃圾在科学计算领域 还是c++好
【在 n******t 的大作中提到】 : 好的系统程序员知道怎么规避这些限制。最后必须要用到 : 新的OS特性才行的情况,其实不多。就算要用,这些地方, : 因为数量不多,写个wrapper就好了。 : Java的问题,我说过了,根本不是很多人纠结的什么heap,stack这些问题。 : Java不适合高性能的开发的关键点,在于这个语言不鼓励人把事情想清楚。 : 最后结果就是这个开发社区里的人大部分人不在乎所谓performance的问题。 : 这样的社区开发出来的东西,能跑快就有鬼了。
|
x****u 发帖数: 44466 | 33 Windows下有select么?反正没什么人用。
IOCP是UNIX上面流行的东西,Windows其实也是山寨。
【在 c****3 的大作中提到】 : 这是吹牛吧,JRE现在wrapper Windows iocp了,还是用传统的select吧?
|
x****u 发帖数: 44466 | 34 App Server啊
【在 l*********s 的大作中提到】 : 你举个应用逻辑轮子的例子?
|
x****u 发帖数: 44466 | 35 为什么科学技术不用专门的数学语言?
C++的设计是为了做复杂软件逻辑的。
【在 N******K 的大作中提到】 : java诡异的就是 不鼓励人把事情想清楚 应该适合科学计算 不用考虑底层系统 : 结果很垃圾在科学计算领域 还是c++好
|
N******K 发帖数: 10202 | 36 专门的数学语言?
你的意思是 输入 paper 阅读 然后输出结果 那种?
【在 x****u 的大作中提到】 : 为什么科学技术不用专门的数学语言? : C++的设计是为了做复杂软件逻辑的。
|
z****e 发帖数: 54598 | 37 随便一个fp都比c++更靠近数学
r就适合统计,统计在你看来算不算科学?
比你们图形学是不是更接近科学一点?
【在 N******K 的大作中提到】 : 专门的数学语言? : 你的意思是 输入 paper 阅读 然后输出结果 那种?
|
x****u 发帖数: 44466 | 38 数学语言比如matlab
【在 N******K 的大作中提到】 : 专门的数学语言? : 你的意思是 输入 paper 阅读 然后输出结果 那种?
|
z****e 发帖数: 54598 | 39 这叫分工
我们相信,某些牛人,比如你
能够搞定这些performance的问题
所以把问题集中到一块交给牛人去优化
如果牛人都搞不定,那其它人自然也搞不定了
jvm就是那个wrapper,小菊花说的基本是对的
【在 n******t 的大作中提到】 : 好的系统程序员知道怎么规避这些限制。最后必须要用到 : 新的OS特性才行的情况,其实不多。就算要用,这些地方, : 因为数量不多,写个wrapper就好了。 : Java的问题,我说过了,根本不是很多人纠结的什么heap,stack这些问题。 : Java不适合高性能的开发的关键点,在于这个语言不鼓励人把事情想清楚。 : 最后结果就是这个开发社区里的人大部分人不在乎所谓performance的问题。 : 这样的社区开发出来的东西,能跑快就有鬼了。
|
z****e 发帖数: 54598 | 40 我也不主张自己造轮子,但是小菊花说的是,你自己造的
往往 比不上店里买的
这个基本上是对的,当然这种做法不是“最”有效的,没有人说是最有效的
但是生活中我没事为什么要用导弹拦截的标准去定制我的pc或者server?
你见过民航客机飞得超过战斗机么?
也不是没有,当年法国姥协和飞机就是超音速,这个就接近军用标准了
结果因为维护成本和开发成本高居不下,废了
相比之下,法国的tgv虽然并不是陆地上最高时速
论最高效的陆路运输,日本人做的比法国做的速度更快
但是日本的最高时速是通过磁浮式创造的
而法国的tgv则是钢轨式最高速度,就是传统的铁轨
tgv能够利用现有铁轨,从而使得成本大幅降低
就这么一个简单的节省,就使得tgv比日本新干线更有市场
天朝的高铁其实就是法国姥的技术,而不是日本人的新干线
都是法国人的产品,一个成功了,一个失败了
你从中得到了什么启示?
【在 l*********s 的大作中提到】 : 我不主张自己造轮子。但是,你要说肯定比不上那也太武断了。我觉得最有效的优化其 : 实不在于fancy的系统调用,而是对业务流程/商务逻辑上的优化和语言技术的结合。这 : 个,你车店里恐怕是买不到。
|
|
|
z****e 发帖数: 54598 | 41 协和飞机共生产了20架,其中仅有16架投入运营。巨大的资金投入和漫长的研发过程使
英法两国政府蒙受了不小的经济损失,而且两国政府还不得不拨款资助英航和法航购买
协和飞机。2000年,协和飞机发生了其营运生涯的第一次、也是唯一的一次灾难性事故
——法国航空4590号班机空难,旅客对其信心大减,之后的911事件又使国际民航业陷
入危机。受种种因素影响,英航和法航决定协和飞机执行完2003年10月27日的最后一次
商业飞行后终止服务,并于同年11月26日完成“退役”航班后结束其27年的商业飞行生
涯[2]。协和飞机代表着航空技术史上的一个技术进步,因此即使退役后,协和飞机仍
然是航空历史上的一个重要象征。
TGV列车是全球最快的高速列车之一,其商业营运的最高速度为每小时320公里(TGV-R,
TGV-D与TGV-POS),最高试验速度则可达到每小时574公里。TGV的“V150”列车,在
2007年4月3日的试验时更达到每小时574.8公里的纪录,虽然未能超越日本JR磁悬浮列
车创下的陆上交通工具世界纪录(每小时581公里),但在轮轨列车上仍是“全球第一
速”。
协和飞机当之无愧世界第一高速客机,挂了
tgv只能说是钢轨最高速,很成功,对天朝输出了,阿尔斯通的火车在澳洲都有很大市场
澳洲城市以及城市之间的火车都是阿尔斯通和盆巴迪的产品
都是francophone companies
小日本的新干线现在也就是对台湾有输出,其它国家有几个用了新干线了?
台湾那个还三天两头坏掉,中森新闻里面天天骂
jvm其实就是那个钢轨 |
n******t 发帖数: 4406 | 42 windows 的select当然有人用。你如果在win32时代写过socket就知道了。
而且好像windows的select没有办法select socket之外的东西,比较烦。
【在 x****u 的大作中提到】 : Windows下有select么?反正没什么人用。 : IOCP是UNIX上面流行的东西,Windows其实也是山寨。
|
z****e 发帖数: 54598 | 43 要与时俱进啊,现在说win32的例子有些让人无语
发现跟德国有什么关系的,比如你
总是很因循守旧
sap里面的东东也是很老旧的一套
当年sap搞j2ee也用了很长一段时间
美国媒体经常性bash sap
不java,所以erp等产品前途堪忧
汉莎航空用的主机也比世界上其它国家民航主机要落后一个时代
德国人天生就没有这个创新的基因
但是德国人有纪律,有素质
其它国家人做不到,就像踢球一样
德国队据说是唯一一个踢三后卫成功的球队
【在 n******t 的大作中提到】 : windows 的select当然有人用。你如果在win32时代写过socket就知道了。 : 而且好像windows的select没有办法select socket之外的东西,比较烦。
|
n******t 发帖数: 4406 | 44 我不是win32的高手,你不用扯上我。
新的特性可以用就用好了,我这几年一样用新的东西,不管是新的OS的特性,类似IOCP
这样的,或者最近比较流行的语言,像C++11/FP/Python.但是这些东西,我的感觉,都
不是说
决定性的,用好了(注意是用好了),可能某些时候能省10-20%的事情,没那么high。
【在 z****e 的大作中提到】 : 要与时俱进啊,现在说win32的例子有些让人无语 : 发现跟德国有什么关系的,比如你 : 总是很因循守旧 : sap里面的东东也是很老旧的一套 : 当年sap搞j2ee也用了很长一段时间 : 美国媒体经常性bash sap : 不java,所以erp等产品前途堪忧 : 汉莎航空用的主机也比世界上其它国家民航主机要落后一个时代 : 德国人天生就没有这个创新的基因 : 但是德国人有纪律,有素质
|
z****e 发帖数: 54598 | 45 我在看netty,twitter韩国的产品。据说效率不错
http://netty.io/index.html
你用新东西,跟你心里面对新东西的接受程度
是两回事
fp和python什么都不是新东西,都是几十年前就有的东西
你看你举例都举得那么old fashion
IOCP
【在 n******t 的大作中提到】 : 我不是win32的高手,你不用扯上我。 : 新的特性可以用就用好了,我这几年一样用新的东西,不管是新的OS的特性,类似IOCP : 这样的,或者最近比较流行的语言,像C++11/FP/Python.但是这些东西,我的感觉,都 : 不是说 : 决定性的,用好了(注意是用好了),可能某些时候能省10-20%的事情,没那么high。
|
z****e 发帖数: 54598 | 46 看德国人的产品最有意思
德国人总是能把老爷车开得飞快
然后其他国家人看到了都很惊讶
啊?这个老爷车难道不是早该淘汰掉的吗?
当年天朝搞那个主机时候就说
为什么就德国人做得那么好?
他们跟我们用一样的东西,为什么人家就很少出问题?
最后还是不行,还是美国人那一套比较对胃口
因为most of americans r stupid
没有德国人那种纪律性,所以美国人错的,多半我们也会错
所以还是跟美国人搞技术比较有前途
法国人也是一样,天朝核电厂里面都是法国人的产品
很多法国工程师的家属就在当地的法盟里面教法语
德国人,老中学不来,基因上就有些不太对口
java就是最american的东西,java的主要贡献者不是美国佬就是加拿大人
还有什么澳大利亚人,都是anglosphere的,一个比一个蠢
所以他们只能把东西往便于使用了去做,复杂了,愚蠢的美国人不懂怎么做 |
z****e 发帖数: 54598 | 47 说了很多次以前语言的血统
scala的作者就是说德语的
ruby是日本人做的
groovy现在的project manager是法国人,住在巴黎
python是荷兰人做的,二战期间荷兰八天内投降
所以大概就可以感觉一下了 |
c****3 发帖数: 10787 | 48 Linux下是epoll吧,IOCP是Windows下专用的。好像搞网游的必须用这个,否则服务器
撑不住那么多人同时在线,响应速度也得快,否则人家网游里开枪,你还傻在那里。
【在 x****u 的大作中提到】 : Windows下有select么?反正没什么人用。 : IOCP是UNIX上面流行的东西,Windows其实也是山寨。
|
x****u 发帖数: 44466 | 49 Linux是比较土的一种类UNIX产品,NT都比它洋气。
【在 c****3 的大作中提到】 : Linux下是epoll吧,IOCP是Windows下专用的。好像搞网游的必须用这个,否则服务器 : 撑不住那么多人同时在线,响应速度也得快,否则人家网游里开枪,你还傻在那里。
|
d****i 发帖数: 4809 | 50 小菊花你这个软粉,这种话也应该由FreeBSD的拥趸来说,看看Linux和FreeBSD怎么调
戏你们软软的:
【在 x****u 的大作中提到】 : Linux是比较土的一种类UNIX产品,NT都比它洋气。
|
|
|
p*u 发帖数: 2454 | 51
yes i was literally disgusted by his statement...
【在 d****i 的大作中提到】 : 小菊花你这个软粉,这种话也应该由FreeBSD的拥趸来说,看看Linux和FreeBSD怎么调 : 戏你们软软的:
|
g*********e 发帖数: 14401 | 52
now,
你的project都是大学里的编程课作业吧
【在 l*********s 的大作中提到】 : RE, premature optimization is the root of evils. performance is important, : but there are other considerations like code readability. : I don't understand why to claim multi-threading in c++ as "mission : impossible": I know almost nothing about coding 1.5 years ago, but till now, : I have had ZERO projects(in c/c++) that is actually single threaded. The : fear is really an exaggeration.
|
g*********e 发帖数: 14401 | 53
matlab即可
【在 x****u 的大作中提到】 : 为什么科学技术不用专门的数学语言? : C++的设计是为了做复杂软件逻辑的。
|
l*********s 发帖数: 5409 | 54 no. I make a living on these.
【在 g*********e 的大作中提到】 : : matlab即可
|
k**********g 发帖数: 989 | 55
http://www.quora.com/Parallel-Computing/What-are-some-good-proj
This is one example where making a simple parallel framework is both a
course exercise as well as having commercial value.
It is the enlightenment that matters. The difficulty is in getting the
enlightenment.
【在 g*********e 的大作中提到】 : : matlab即可
|