`
林秋枫
  • 浏览: 50032 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

多核时代已经来临了,ruby还能热下去吗?

阅读更多

多核时代已经来临了,ruby还能热下去吗?

关注ruby很久了。看过很多对ruby的赞美之词。可是心里还是抱有很多疑虑的。
最近了解了一下相关了资料,竟然发现ruby不支持多线程,只支持伪线程(不是真正的多线程)。
不支持多线程必定会使ruby的应用受到很大的局限,比如:
1.不能应用在嵌入式系统中;
2.不能应用在桌面系统中;
3.不适合做海量访问的web系统;

真是因为这样,ruby也许只能局限于web编程方面。即使在这方面,功能复杂的企业应用系统和海量访问的大型网站也无法应用。
无法支持多线程,只能通过多进程的方式处理并发的连接。而进程是重量级的,无论怎么优化在性能上也是无法超过轻量级的线程。

现在,多核时代已经到来了。家用pc已经普及了双核的cpu,未来4核、8核甚至是几百核的cpu也并不是一件遥远的事情。在多核时代,支持多线程的语言肯定优于不不支持多线程的语言。随着多核时代的到来,java在性能上核C++的差距会越来越小。ruby的优势还存在么?

说ruby取代java简直是一件笑话。即使在web编程方面,ruby所能取代的,也许仅仅是php而已。

分享到:
评论
29 楼 lgx522 2007-07-05  
最近退步了,在用PHP。
看完《PHP和MySQL Web开发》(PHP“圣经”)后才发觉人家用简单脚本也可以很好地实现结构化、重用性、扩展性。对PHP的认识才算又上了一层。又看了《Ajava和PHP开发》,运行了一下代码,速度超快,便又产生了一些不规矩的想法。

这下总算是搞清楚了,Web开发,中低端用PHP,要的是简单直接高效;高端用Java,要的是强和稳。这就是我的结论。
28 楼 geszJava 2007-07-02  
ipc貌似可以支持单线程1w+并发,机器稍微强一点,支持10w+并发也不是难事.稍稍优化一下,几十万的并发也可以做到.只不过php是做web的,速度这么快真是很向往啊.
27 楼 lgx522 2007-07-02  
与其用RoR,不如用PHP。
简单都到这个份上了,不如直接点,省得隔靴搔痒。
何况PHP还真是快,机器要求还真是低。

至于复杂的东西,非Java莫属。
26 楼 pufan 2007-07-02  
单机10w并发,小型机?还是10w/minute?

jabber服务器还是写过的,java的10w+在线,2000+并发,dell 8核 4g内存,即使erlang 的green thread再优化,10w并发忒夸张了吧。
25 楼 geszJava 2007-07-02  
有点逗...雅虎的搜索应该是nutch的吧,不过似乎改了挺多东西的哦.
24 楼 mathsfan 2007-06-30  
引用
不妨告诉你,我上周在杭州参加大会,中午吃饭的时候,我右边坐的就是Yahoo的首选科学家,再右边就是现在在Yahoo工作的PHP之父Rasmus Leodorf,是他们两个人这样告诉我。你以为如何?你觉得他们会撒谎吗?

好象不对,记得在哪看过说yahoo的搜索模块是用ror的吧```
23 楼 gigix 2007-05-27  
qqbuilder 写道
Erlang这种标准多进程模型可是号召C100K,单机支撑10万并发请求,怎么样?
那如果有4个内核,岂不是可以支持40万并发请求,还是原来这么多,忽视多核时代的到来,本身就是个错误!

有没有搞清楚多核到底是怎么回事阿……
多核时代到来,究竟谁会受冲击?是进程之间隔离良好、接口清晰的多进程协作方式更容易在多个核上同时运行,还是大量使用共享内存空间的多线程模式更容易,难道这不是一目了然的吗?
本科的操作系统课程都没过关,还学人吹多核,啧啧啧……
22 楼 ddandyy 2007-05-27  
判断一个语言能不能生存下去 不是看他的速度有多快的
如果真的这么简单的话 JAVA也不会到现在这样  都知道速度最快的是C 甚至汇编  那其他语言为什么还有生命力?
包括一个项目在初期设计 决定用哪种语言的时候 速度的快慢也是靠后考虑的一个因素  首先的哪种语言能适应业务需求 并且易于开发  其次如果速度有问题 也是想办法解决这个语言的速度问题  不是因为这个语言慢 我就不用他了 而用别速度快  但是随便写个东西都要很大人力的东西
21 楼 Godlikeme 2007-05-26  
robbin 写道
Godlikeme 写道
robbin 写道
不得不说,你自己说的才是一个笑话。PHP就是不支持多线程的,那有如何?Yahoo!就是全部采用PHP,人家网站可是全球访问量排名第一的网站,照你的理论,不是早该挂了吗?

进程模式不见得性能不如线程模型,这个以前已经讨论过了,你去看看看综合版qiezi的评测,Erlang写的Server在高并发请求下性能超过了C++的多线程Server。

Erlang这种标准多进程模型可是号召C100K,单机支撑10万并发请求,怎么样?


借问一句,10w并发不是要起100k进程吧?
如果是,我得回头好好学学操作系统了。


qiezi的文章没有找到,谁帮发个链接,谢了。


不需要10万个进程,Erlang的Server是通过消息机制来实现并发的。其实即使是lighttpd,也可以单进程单线程支持1万个并发连接的,所以并不是只有多线程或者多进程才能够处理并发,我觉得你确实有必要学习一下操作系统的网络IO模型了。

http://www.iteye.com/topic/76007


在我看来erlang 是在语言级别实现了 Worker-process pattern 并无很特殊的地方,拿Worker-process pattern实现和 process per connection 处理模式进行比较没什么意义。

nio正在学习,不劳赐教。
20 楼 歆渊 2007-05-26  
我插一句, 多核对Java的冲击也很大, 并不是说这个普及了Java是最大赢家什么的, 实际上目前的情况看只能占到比较少的一点便宜.

主要问题在于Java GC的实现, 目前最成熟的GC是要整个JVM停机回收垃圾的, 这就是说管你多少个CPU多少个核心, 到了GC的时候统统候着去! SUN的并行GC在1.5的JVM才开始出现, 成熟度可想而知. 最近在 JDK1.6.0_01上用NetBeans, 配置里说启用并行GC可以很大提高GUI效率, 但是我改了参数发现右键菜单都看出来是从上到下刷出来的了,绝对不是特效, 可以感觉出延迟. 换作默认的经典GC就好了.

GC的问题在双核, 甚至4核的机器上跑可能还算不上致命问题, 但是前些天看到演示, Intel的 80 核心 CPU 已经在实验室里搞出来了, 面世也不会太远了. 到那个时候如果并行GC还是不成熟, 用经典GC可想而知, 运行一会儿程序 80 颗 CPU 核心就统一歇一会儿菜, 将是什么景象.

当然Java的好处就是把这些底层细节都丢给JVM实现去嘿咻了, 咱们写的Java程序现在用经典GC在少核机器上跑, 以后JVM GC改进了, 同样的程序放到多核机器上去跑完全不用修改, 直接就可以享受到好处. 但是对于JVM供应商来说, 它们去达到这个目标的成本并不比其他语言的实现要轻易, 而且要是跟Ruby这样的新生语言来比, 很可能因为历史包袱太多成本更高. 不过商业运作也很关键, Java一直以来有SUN在顶, 也算是有福气了.
19 楼 icefire 2007-05-25  
每种语言都有自己解决问题的方法!!
其实一门语言,也是要有商业运作才行的!
每人支持,在好也是白搭!
18 楼 robbin 2007-05-25  
qqbuilder 写道
bigpanda 写道
robbin 写道

多核和多机实在是两码事,增加cpu内核,整机的运算能力并不能翻番。你口口声声多核,但是连多核的基本知识都不了解。


运算能力为什么不能翻番?

一般的服务器程序的瓶颈在IO,而没有多少计算量。多核的机子的IO吞吐量和单核的没什么区别。

但是写计算复杂的程序,就大大不一样了,我这两天一直在修改mp3编码器,让它能在多线程环境下运行。双核计算机,就是可以同时处理两个文件的编码,速度提高了一倍。CPU的Usage达到100%。

既然说到yahoo用什么语言,我就来说说,yahoo用到的语言有.net,PHP,Python,Ruby,perl等等,对于这种超大型网站来说,语言都是次要的,但是多核处理器的出现对于这种网站无疑是一个福音,多核处理器标志着计算技术的一次重大飞跃,它的出现,对于他们或者我们来说,都是一个全新的领域,Intel已经推出了16核Tigerton,IBM甚至还要推出更多核,也许未来的PC机,再也没有显卡,和其他芯片,他们都将会成为CPU中的一个核。

对于robbin,我对他的话只能表示遗憾,也可以看出他涉足的领域比较狭窄,对新事物的出现不敢接受,而对于Ruby,我的看法它就是商业炒作的结果,动态语言是方向,但最后的赢家决不是它

robbin 写道
增加cpu内核,整机的运算能力并不能翻番----这要看你则么计算了,处理好的话可以接近翻番。

robbin 写道
Yahoo!就是全部采用PHP,人家网站可是全球访问量排名第一的网站,照你的理论,不是早该挂了吗?

我觉得你应该这么写Yahoo!就是全部采用HTML这还差不多
GOOGLE全球访问量排名第一?呕,I'm sorry,其实是微软,它才是第一,不过它既不用java,也不用PHP,用的是.net,让你们这些所谓的专家最看不上眼的东西,排名第二是GOOGLE,第三才是Yahoo!。我的老大!!!


你这个人很搞笑,回了你一个帖子,就连我接受不接受新事物,ruby是不是商业炒作的结论都得出来了,看得出来你的逻辑思维能力相当混乱,当然我不介意你怎么说我,因为我从来就没有说过我有多牛,比我牛的人多得是,当然不是你。

对了,不妨给你看看这个:

http://www.alexa.com/site/ds/top_500?qterm=

注意看右边的排名,千万别再看错了。

17 楼 robbin 2007-05-25  
Godlikeme 写道
robbin 写道
不得不说,你自己说的才是一个笑话。PHP就是不支持多线程的,那有如何?Yahoo!就是全部采用PHP,人家网站可是全球访问量排名第一的网站,照你的理论,不是早该挂了吗?

进程模式不见得性能不如线程模型,这个以前已经讨论过了,你去看看看综合版qiezi的评测,Erlang写的Server在高并发请求下性能超过了C++的多线程Server。

Erlang这种标准多进程模型可是号召C100K,单机支撑10万并发请求,怎么样?


借问一句,10w并发不是要起100k进程吧?
如果是,我得回头好好学学操作系统了。


qiezi的文章没有找到,谁帮发个链接,谢了。


不需要10万个进程,Erlang的Server是通过消息机制来实现并发的。其实即使是lighttpd,也可以单进程单线程支持1万个并发连接的,所以并不是只有多线程或者多进程才能够处理并发,我觉得你确实有必要学习一下操作系统的网络IO模型了。

http://www.iteye.com/topic/76007
16 楼 Godlikeme 2007-05-25  
robbin 写道
不得不说,你自己说的才是一个笑话。PHP就是不支持多线程的,那有如何?Yahoo!就是全部采用PHP,人家网站可是全球访问量排名第一的网站,照你的理论,不是早该挂了吗?

进程模式不见得性能不如线程模型,这个以前已经讨论过了,你去看看看综合版qiezi的评测,Erlang写的Server在高并发请求下性能超过了C++的多线程Server。

Erlang这种标准多进程模型可是号召C100K,单机支撑10万并发请求,怎么样?


借问一句,10w并发不是要起100k进程吧?
如果是,我得回头好好学学操作系统了。


qiezi的文章没有找到,谁帮发个链接,谢了。
15 楼 Godlikeme 2007-05-25  
大规模并行计算这种事情觉得大家就不要讨论了,反正我是不懂,也没看出谁比较明白。
14 楼 qqbuilder 2007-05-25  
bigpanda 写道
robbin 写道

多核和多机实在是两码事,增加cpu内核,整机的运算能力并不能翻番。你口口声声多核,但是连多核的基本知识都不了解。


运算能力为什么不能翻番?

一般的服务器程序的瓶颈在IO,而没有多少计算量。多核的机子的IO吞吐量和单核的没什么区别。

但是写计算复杂的程序,就大大不一样了,我这两天一直在修改mp3编码器,让它能在多线程环境下运行。双核计算机,就是可以同时处理两个文件的编码,速度提高了一倍。CPU的Usage达到100%。

既然说到yahoo用什么语言,我就来说说,yahoo用到的语言有.net,PHP,Python,Ruby,perl等等,对于这种超大型网站来说,语言都是次要的,但是多核处理器的出现对于这种网站无疑是一个福音,多核处理器标志着计算技术的一次重大飞跃,它的出现,对于他们或者我们来说,都是一个全新的领域,Intel已经推出了16核Tigerton,IBM甚至还要推出更多核,也许未来的PC机,再也没有显卡,和其他芯片,他们都将会成为CPU中的一个核。

对于robbin,我对他的话只能表示遗憾,也可以看出他涉足的领域比较狭窄,对新事物的出现不敢接受,而对于Ruby,我的看法它就是商业炒作的结果,动态语言是方向,但最后的赢家决不是它

robbin 写道
增加cpu内核,整机的运算能力并不能翻番----这要看你则么计算了,处理好的话可以接近翻番。

robbin 写道
Yahoo!就是全部采用PHP,人家网站可是全球访问量排名第一的网站,照你的理论,不是早该挂了吗?

我觉得你应该这么写Yahoo!就是全部采用HTML这还差不多
GOOGLE全球访问量排名第一?呕,I'm sorry,其实是微软,它才是第一,不过它既不用java,也不用PHP,用的是.net,让你们这些所谓的专家最看不上眼的东西,排名第二是GOOGLE,第三才是Yahoo!。我的老大!!!
13 楼 bigpanda 2007-05-25  
robbin 写道

多核和多机实在是两码事,增加cpu内核,整机的运算能力并不能翻番。你口口声声多核,但是连多核的基本知识都不了解。


运算能力为什么不能翻番?

一般的服务器程序的瓶颈在IO,而没有多少计算量。多核的机子的IO吞吐量和单核的没什么区别。

但是写计算复杂的程序,就大大不一样了,我这两天一直在修改mp3编码器,让它能在多线程环境下运行。双核计算机,就是可以同时处理两个文件的编码,速度提高了一倍。CPU的Usage达到100%。

12 楼 林秋枫 2007-05-25  
hurricane1026 写道
林秋枫 写道
robbin 写道
qqbuilder 写道
Erlang这种标准多进程模型可是号召C100K,单机支撑10万并发请求,怎么样?
那如果有4个内核,岂不是可以支持40万并发请求,还是原来这么多,忽视多核时代的到来,本身就是个错误!


多核和多机实在是两码事,增加cpu内核,整机的运算能力并不能翻番。你口口声声多核,但是连多核的基本知识都不了解。
多一个cpu内核当然不能使整机的运算能力翻番,但肯定可以提高不少。
多核可能提高的效能也不一定比得上多CPU。但是效能应该是类似的。
你能不能解释一下为什么大型的服务器总是要用多CPU的原因呢?

有些应用根本不看运算能力,i/o瓶颈才是关键。。。真正完全消耗计算能力的应用有几个?
i/o瓶颈对于哪种应用都是存在的.
对于计算能力,好像是有这么一句话:不管硬件是性能提高多少,软件都有办法消耗掉.
11 楼 林秋枫 2007-05-25  
qqbuilder 写道
Yahoo 都是采用PHP,老大拜托你查查资料

Yahoo采用PHP。
那你为什么不拿google来对比呢?
10 楼 林秋枫 2007-05-25  
robbin 写道
qqbuilder 写道
Yahoo 都是采用PHP,老大拜托你查查资料


不妨告诉你,我上周在杭州参加大会,中午吃饭的时候,我右边坐的就是Yahoo的首选科学家,再右边就是现在在Yahoo工作的PHP之父Rasmus Leodorf,是他们两个人这样告诉我。你以为如何?你觉得他们会撒谎吗?


我倒觉得,如果PHP之父不为PHP吹嘘那才是奇怪的事情。
不是说不相信专家,但是所有行业的很多专家对自己的理论都很偏袒却是一个毫无疑问的事实。

相关推荐

    基于共享内存的多核时代数据结构研究.pdf

    1. 多核CPU时代的到来:随着计算机硬件技术的发展,目前我们已经进入了多核处理器时代。这一发展改变了传统数据结构设计的环境,因为现有的数据结构大多仍是为单核CPU设计,遵循顺序型原则。 2. 共享内存架构下的...

    多核时代下的并行编程(下)-NILabVIEW网络讲坛第三季.flv

    多核时代下的并行编程(下)-NILabVIEW网络讲坛第三季flv,仅仅凭借自动多线程的特性,还无法充分地利用多核优势,本集中,工程师将详细讲解如何在LabVIEW中实现多核性能的充分利用,包括任务并行化、数据并行化以及...

    携手多核时代 共赢应用未来

    标题和描述中的“携手多核时代,共赢应用未来”强调了多核技术在现代计算领域的重要性和潜力。这一口号不仅体现了英特尔(Intel)对于多核技术发展的坚定信念,也预示着多核技术将成为推动应用创新和产业升级的关键...

    嵌入式微处理器进入多核时代.pdf

    嵌入式微处理器进入多核时代的相关知识点主要包括以下几个方面: 1. 多核微处理器的出现背景:在多媒体应用增加和人们对便携性设计追求的双重影响下,传统的单一频率指标已不足以衡量微处理器性能,取而代之的是...

    多核时代 主流超值处理器导购.pdf

    在多核时代,处理器的选择对于构建一台高性能且经济实惠的电脑至关重要。本文主要针对主流的超值处理器进行导购,旨在帮助消费者在不断变化的市场中找到最适合自己的处理器。随着技术的进步,处理器从65纳米制程向45...

    关于多核CPU技术看这个就对了.zip

    处理器的发展可谓日新月异,CPU对计算机性能的发挥起着至关重要的作用,随着信息时代的到来,各层次的电脑用户对电脑的性能提出了更高的要求,单核处理器已经不能满足人们日常工作生活所需。 伴随着数字化办公和...

    多核时代 Erlang的时代

    erlang 并发 编程 开发 语言

    从多核到众核

    其实“多核”这个词已经流行很多年了,世界上第一款商用的非嵌入式多 核处理器是2002年IBM推出的POWER4。当然,多核这个词汇的流行主 要归功与AMD和Intel的广告,Intel与AMD的真假四核之争,以及如今的 电脑芯片...

    多核架构与编程技术

    多核处理器不仅能有效提升计算性能,还能在一定程度上解决能耗、散热等设计难题。多核技术的迅速普及使得并行计算成为了发展的主流,而如何在多核计算机平台上设计出高性能的并行程序,成为了软件开发中的一个核心...

    Intel多核培训3.rarIntel多核培训3.rarIntel多核培训3

    【Intel多核培训3】是针对Intel多核处理器技术的一系列教育资源,主要由清华大学提供。在现代计算机领域,多核技术已经成为提升系统性能的关键因素,它允许在一个处理器封装内集成两个或更多的处理核心,实现并发...

    labview多核技术下的并行编程模式

    多核处理器不仅提供了更多的运算资源,还使得每个内核都能独立拥有完全的线程并行能力以及独立的缓存和其他资源。 然而,多核技术也带来了新的挑战,尤其是在软件开发方面。为了充分利用多核处理器的性能优势,...

    Aurix多核编程精华应用笔记

    通过深入学习本应用笔记,开发者不仅能够掌握AURIX™多核项目的编程要点,还能有效利用相关的开发工具与技术,提升软件开发的效率和质量。同时,该笔记对于理解多核系统的工作原理、任务分配、同步机制以及安全性...

    多核程序设计PDF

    作者都是长期供职于Intel公司的资深软件工程师和结构师,书中融入了他们自己丰富的软硬件开发经验,可以为面向多核体系结构进行并行程序设计的开发人员提供巨大的帮助。不论对从未接触过并行程序设计的开发人员,...

    基于TBB的傅里叶变换多核并行化实现

    通过将算法中可以并行的部分有效利用多核处理器的能力,不仅能够显著提升执行速度,还能适应当前多核时代的发展需求。对于开发者而言,掌握这类并行化技术是提升软件性能,适应未来技术发展的重要技能。

    Intel多核培训5Intel多核培训5Intel多核培训5

    通过深入理解和掌握以上知识点,开发者不仅能更好地理解和利用Intel多核处理器,还能为未来的高性能计算需求做好准备,推动技术创新和发展。本次“Intel多核技术深度解析与应用实践”培训将全面覆盖这些主题,旨在...

    片上多核处理器架构指南

    对于软件开发者而言,多核时代的来临意味着需要适应新的编程模式。传统的单线程程序需要转变为能够充分利用多核优势的并行程序。这涉及到程序执行模型的选择,它是编译器设计人员与系统实现人员之间的接口。正确的...

    加速多核时代进程AMD新款24核、12核心CPU深度体验.pdf

    加速多核时代进程AMD新款24核、12核心CPU深度体验.pdf

    Windows XP 支持多核补丁

    首先,我们要明白,Windows XP最初设计时主要针对的是单核处理器环境,因此在面对多核硬件时,其内核并不能充分利用所有核心的潜力,导致多核处理器的性能无法得到充分发挥。微软在后续的服务包中逐步解决了这个问题...

    nios多核处理器程序

    Mutex用于保护共享资源,确保同一时间只有一个核心能访问特定区域的数据,防止数据竞争条件。 4. **Mutex原理与实现**:Mutex是一个信号量,用于控制对共享资源的访问。当一个核心获取了Mutex后,其他试图获取该...

Global site tag (gtag.js) - Google Analytics