写点什么

Wee:基于 Continuation 的 Ruby Web 框架

  • 2009-03-28
  • 本文字数:669 字

    阅读完需:约 2 分钟

Wee(Web Engineering Easy 的简称)是一个类似 Seaside 的 Web 框架,它使用 Continuation,这使得开发者可以“轻松漂亮地完成任务”,Wee 的作者 Michael Neumann 如此形容到。Wee 也提供可复用组件,这种组件“和GUI 中的Widgets 类似,开发一次,就可以随处使用”,它的目标是让HTML 的GUI 应用可以组建化,而不是让其REST 化。即将发布的2.0 版本也将完全基于Rack。

Neumann 在一篇关于 Wee 的博文中示例说明了使用 Continuation 的代码在可读性上有多么明显的优势。使用 Continuation,简单的序列流就可以写成这样:

复制代码
callcc page1
callcc page2
callcc page3

还有另一种连续传递风格(Continuation Passing Style)的写法:

复制代码
call page1 do
call page2 do
call page3
end
end

如果 Continuation 这么有用,那为什么不是所有框架都采用 Continuation 呢?没有出现更多基于 Continuation 的 Ruby Web 框架,其中一个原因就在于:Ruby 1.8 存在内存泄露。虽然 Brent Roman 的 MBARI 补丁已经修复了这个问题,但是还没有引入到官方的 Ruby 1.8 中(一旦 Engine Yard 开始接管 Ruby 的维护工作,应该就会引入这个补丁)。Ruby 1.9.1b 不再存在内存泄露的问题,Wee 也得益于这一点

Ruby 1.9.1 中 10000 个请求(1 个线程中)需要花费 16 秒,内存占用为 12MB,而同样的请求在 Ruby 1.8.7 中会占用多达 329MB 的内存,时间上也长达 56 秒。

看来 Wee 是人们选择升级到 Ruby 1.9 的一个有力理由,而由于 Merb 也将合并到 Rails 3.0 之中,所以 Wee 很可能成为取代 Rails 的最佳选择。

查看英文原文: Wee: Continuation Based Ruby Web Framework

2009-03-28 21:373894
用户头像

发布了 80 篇内容, 共 20.5 次阅读, 收获喜欢 5 次。

关注

评论

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

写给互联网工程师的5G书 | 6. 参考实现

俞凡

架构 5G 网络 通信

Nginx如何支持HTTPS,大厂Java高级多套面试专题整理集合

Java 程序员 后端

nginx路径匹配踩坑

hasWhere

架构设计的一些思考

hasWhere

古董系统的并发安全改造

hasWhere

缓存系统设计与实现

hasWhere

过滤器、拦截器、监听器

hasWhere

架构实战营模块八作业

技术是伙伴

架构实战营

模块四作业

Geek_fc100d

「架构实战营」

中秋晴朗夜,我们与星月相见

白洞计划

Vue进阶(幺贰叁):v-for 实现一行展示 n 个元素

No Silver Bullet

Vue 9月日更

TCP/IP参考模型与标准协议

Regan Yue

TCP/IP 9月日更

架构训练营模块八作业

喻高咏        

架构训练营

【LeetCode】最后一个单词的长度Java题解

Albert

算法 LeetCode 9月日更

端口连接出现大量FIN_WAIT1/CLOSE_WAIT

hasWhere

Java面试必刷的200道真题,深挖底层原理、啃源码,最终上岸

Java 程序员 后端

产品分析:如何给出解决方案?

石云升

产品经理 产品思维 9月日更

模块八作业

SAKIN

写给互联网工程师的5G书 | 7. 云化接入网

俞凡

架构 5G 网络 通信

P8级别的顶级“并发编程”宝典,面试完腾讯我才发现这些知识点竟然没掌握全

Java 程序员 后端

PDF超过6000页,2021最新Java面试题及答案

Java 程序员 后端

RabbitMQ的高级特性和消息补偿机制,字节跳动面试真题

Java 程序员 后端

Vue进阶(幺贰肆):前端用户体验提升(一)

No Silver Bullet

用户体验 9月日更

JVM启动参数学习笔记三

风翱

JVM 9月日更

SpringMVC源码分析-HandlerAdapter(2)-RequestMappingHandlerAdapter的初始化

Brave

源码 springmvc 9月日更

技术圈的【多肉小达人】,一篇文章你就能做到

梦想橡皮擦

9月日更

P8级别的顶级“并发编程”宝典,linux基础入门知识

Java 程序员 后端

《转》搭建websocket消息推送服务

hasWhere

架构训练营-模块八作业

hello

架构训练营

Elasticsearch 源码学习(1)源码编译调试

Se7en

高可用延迟队列设计与实现

万俊峰Kevin

微服务 延迟队列 microservice Go 语言 定时队列

Wee:基于Continuation的Ruby Web框架_Ruby_Mirko Stocker_InfoQ精选文章