有人可能会问:“Ruby 对 Net:HTTP 的实现出什么问题了”?Adam Nelson 对应用传输大量数据时的表现感到很吃惊。“当数据以 1024 字节块的大小被传输时,我看到了 CPU 的红线”,这是 Adam 在其初次分析时所发现的。实际的问题是“Ruby 针对每个单独的rbuf_fill 调用都设置一个超时”, Alex Young 说到,“那么在默认情况下,每接收到 1K 数据,就必须产生一个新的线程”。
针对Ruby 不同的实现和不同的库所进行的一个比较表明Ruby 1.8.6 对CPU 的占有率竟然达到了1.8.7 版的两倍,显然后者使用了更大的缓存(16K)。有趣的是,Ruby 1.9.0 对CPU 的占有率最低,其实现采用了 readpartial :“不对 socket 读取设置超时”,同时“提前为每次读取分配字符串缓存”。紧追其后的是 RFuzz ,这是一个纯粹的 Ruby 实现,基于 Zed Shaw 所编写的 Mongrel 内核。
该问题早就有人提出来了,2006 年的一个关于ruby-talk 的邮件列表中就有人在讨论该问题,同时提出了该问题的解决方案。此外,这也证明开源对于我们的帮助和价值是多么大啊。
更多内容推荐
Ruby Enterprise Edition 停止开发,Phusion 专注于 Passenger
Phusion宣布他们基于Ruby 1.8.7的Enterprise Edition(REE)将会停止开发。基于Ruby 1.9版本的不会开发,团队将会专注于Phusion Passenger,它可以在Apache和Nginx上运行Ruby。
于我而言,Go 语言是新的 Ruby
Go是Ruby后第二个让我感受到编程乐趣的语言。
即将来临的 Rails 4.0 将放弃 Ruby 1.8 支持,改进后台任务、缓存等多项内容
即将来临的Rails 4.0将放弃Ruby 1.8支持,提供了多项新特性。其中最重要的是支持针对mass-assignment的强参数、针对后台任务的新队列以及缓存方面的改进。
第二届 RubyConf China 大会顺利结束,Matz 称赞 Ruby 拥有优秀社区
RubyConf China是一年一度的Ruby盛会,第二届RubyConf China大会于6月26日在上海举行。这次有幸邀请到了Ruby之父松本行弘做主题演讲,Yottaa公司的Jared Rosoff、台湾著名Rubyist张文钿以及来自日本的江渡浩一郎等多位国内外知名专家也发表了精彩的演讲。
提高 Ruby on Rails 性能的几种技巧
Ruby on Rails以其高度的易用性和灵活性著称,不过这些优点的背后还存在着性能的隐患。最近,资深Ruby on Rails作家David Berube提供了几个Ruby on Rails性能优化的技巧,对相关开发人员具有一定的借鉴意义。
Rubinius 1.0 驾临
无
JVM 虚拟机架构原理
2022-09-10
代码模板(Python、C、Java、JavaScript、Go)
2023-09-25
1. 结果集处理:unsafe 入门
2023-09-26
Iron.io 从 Ruby 迁移到 Go:减少了 28 台服务器并避免了连锁故障
Iron.io用Go重写了IronWorker,服务器数量从30台减少到2台,CPU利用率也下降至5%以下。本文介绍了Go所解决的问题并探讨了该语言的优缺点。
为什么我不会在新公司中使用 Rails
从流量来说,在线文档上传及分享社区Scribd是世界第三大Rails站点。Jared Friedman是该公司的联合创始人兼首席执行官。他从2006年就开始使用Rails,Scribd第一个版本是用Rails 0.7编写的。现如今,Rails已经成为美国硅谷创业公司默认的Web应用程序开发框架。但Friedman认为这是个错误,并在近日撰文阐述了这一观点。
浅谈 WEBrick 的多线程模型
这篇文章会介绍在开发环境中最常用的应用容器 WEBrick 的实现原理
欣欣向荣的 Ruby 家族
诞生于1993年的Ruby即将迎来自己的20岁生日,估计松本行弘(Matz)先生20年前也没有想到Ruby能成为一门流行的语言,长期出现在TIOBE编程语言排行榜前20之列,并且有逐步上升之势。Ruby的爱好者遍布世界各地,在中国也有庞大的RubyChina社区。而且,除了Matz的MRI Ruby之外,还诞生了很多与其兼容的Ruby实现,有的旨在提升性能,而有的则是为了充分利用其他平台提供的资源,还出现了专门针对移动设备和嵌入式设备的版本。
Shanghai on Rails 举办第 9 次线下活动
5月21日下午Shanghai on Rails举办了第9次线下活动,吸引了长三角地区的众多Ruby爱好者参与。主题演讲涉及了Rails在电子商务领域的应用,以及如何用Rails来开发iOS应用的后端API;还有多位嘉宾就很多不同的话题做了简短的分享。
Ruby 之父:不要违背开发人员的本能
在 Ruby 3.0 发布后,松本行弘接受了一次专访。在专访中,他介绍了 Ruby 的最新特性以及他改进 Ruby 的方法,并分享了他对 Ruby 未来的见解。
09- 并发工具类 -Semaphore 信号量
2023-09-26
4. Redis 通用指令
2023-02-15
大型 Android 应用内存监控如何进行?(上)
讲师介绍: 张世欣,字节跳动-基础架构组-高级工程师。多年从事安卓基础技术建设,对应用性能监控、底层优化、性能分析工具链等有着深入的研究和实践,目前工作内容是为字节跳动旗下全系 App 提供品质提升的技术方案和工具。 问题背景: 随着我国互联网用户渗透率的提升(截止 2021年 6 月,我国网民使用手机上网的比例达 99.6%),移动互联网从爆发增长期转变到稳定增长期。在存量市场下,能否提供更优质的用户体验,成为影响企业用户规模的重要因素。 内存作为应用运行必需的资源,对应用性能的影响非常明显,稍有不当可能导致应用出现崩溃、卡顿等问题,极大地影响用户体验。因此,开发者有必要明确并且掌握应用的内存监控思路和方法,为应用的性能和稳定保驾护航。 内容看点: 为什么要做内存监控 因内存使用不当出现的问题 如何监控内存不足导致的崩溃 如何查询LMK次数
2022-01-07
Ruby 1.9.3:性能和稳定性提升,改为 BSD 授权许可
Ruby团队日前发布了最新的Ruby 1.9.3版本。本次发布的重点并不是新特性的增加,而是通过提升性能和稳定性的同时,带来一个更好的Ruby 1.9版本。
22 个必知编程语言之「Ruby」
Ruby,一种简单快捷的面向对象程序设计的脚本语言,遵守GPL协议和Ruby License。
暂无签名
推荐阅读
Shopify 开源 WebAssembly 工具链 Ruvy
编程语言12. protobuf 与代码生成总结与面试要点
2023-09-26
14. 并发编程:利用 channel 实现一个基于内存的消息队列
2023-09-27
慢的不是 Ruby,而是你的数据库
数据库Android 前景怎么样、是不是要凉了、是不是应该考虑要转行
2021-11-05
5、AIO 异步非阻塞式、BIO 与 NIO 总结
2023-09-27
Ruby 到底怎么了?
电子书
大厂实战PPT下载
换一换 李亚飞 | 深圳至简天成科技 CEO兼首席架构师
张文涛 | 焱融科技 CTO & TGO 鲲鹏会学员
王兵 | eBay Payments&Risk/资深软件工程师
评论