写点什么

Ruby 的 Net::HTTP 怎么了?

  • 2008-11-17
  • 本文字数:457 字

    阅读完需:约 1 分钟

有人可能会问:“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 的邮件列表中就有人在讨论该问题,同时提出了该问题的解决方案。此外,这也证明开源对于我们的帮助和价值是多么大啊。

查看英文原文: What Is Wrong With Ruby’s Net::HTTP?

2008-11-17 09:461073
用户头像

发布了 88 篇内容, 共 273.4 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

如何编写一份简单易用的在线产品手册

小炮

产品宣传手册 产品说明手册

音视频处理三剑客之 ANS:噪声产生原因及噪声抑制原理解析

ZEGO即构

音视频课程 噪声抑制 ANS

2022-06微软漏洞通告

火绒安全

微软 漏洞 安全漏洞

跟着官方文档学 Python 之:3.12 新变化

甜甜的白桃

Python python3.x 6月月更

GCC 为龙芯 CPU的预定义宏

mazhen

c++ RocksDB GCC 龙芯

数据库每日一题---第15天:未消费的顾客

知心宝贝

数据库 程序员 前端 后端 6月月更

如何通过事件可视化分析?

清林情报分析师

数据分析 事件分析 可视化分析 时间分析

一文带你认识CSS

未见花闻

6月月更

python程序设计思想

左手の明天

Python 面向对象

LabVIEW Arduino无线蓝牙遥控智能车(项目篇—2)

不脱发的程序猿

LabVIEW Arduino VISA 无线遥控智能小车 无线蓝牙遥控智能车

配置swagger

卢卡多多

swagger 6月月更

AntDB数据库与强网科技完成产品互认证,积极探索办公自动化领域

亚信AntDB数据库

GetxController 生命周期详解

岛上码农

flutter ios 前端 安卓 6月月更

python逆序输出和进制转化(小白也能看懂)

写代码两年半

Python 6月月更

leetcode 413. Arithmetic Slices 等差数列划分

okokabcd

LeetCode 算法与数据结构

依图在实时音视频中语音处理的挑战丨RTC Dev Meetup

RTE开发者社区

音视频 RTC Dev Meetup 语音处理

考试试卷存储方案

极客土豆

InfoQ 极客传媒 15 周年庆征文|海王的鱼塘是怎样炼成的

知心宝贝

人工智能 大数据 运维 前端 InfoQ极客传媒15周年庆

Java—JVM

武师叔

6月月更

5分钟了解红队如何搜索网络情报

穿过生命散发芬芳

6月月更 攻防演练

vue生命周期

小恺

6月月更

如何设计BI平台

奔向架构师

数据仓库 商业智能 6月月更

HTTP接口性能测试中池化实践

FunTester

从市场需求目标看数据分析演进方向

华为云开发者联盟

人工智能 华为云

力扣每日一练之二维数组下篇Day5

京与旧铺

6月月更

LabVIEW Arduino ZigBee无线气象站(项目篇—3)

不脱发的程序猿

物联网 LabVIEW Arduino ZigBee无线气象站 无线传感器

关于微服务通信的一些Tips

阿泽🧸

微服务 6月月更

InfoQ 极客传媒 15 周年庆征文| 聊聊 Go 语言与云原生技术

宇宙之一粟

云原生 6月月更 InfoQ极客传媒15周年庆

挑战最全 Apache Doris 学习资料,你想要的都在这里了!

SelectDB

数据库 Doris apache doris 技术干货

在 Pisa-Proxy 中,如何利用 Rust 实现 MySQL 代理

SphereEx

MySQL 数据库 rust

倒计时1天,龙蜥社区走进Intel MeetUp 即将开播!直播大奖等你来拿

OpenAnolis小助手

开源 intel Meetup 龙蜥社区 线上直播

Ruby的Net::HTTP怎么了?_Ruby_Mirko Stocker_InfoQ精选文章