首页 » ruby

Ruby C++ 扩展

早年写过用C++ + SWIG写Ruby插件的文,但实际中还是以原生C++写Ruby扩展,因为也相当简单。但长久没用还是会忘记,不得不翻以前的老代码回忆,写下这篇博文,若下次再忘记,也不至于去翻仓库。
建立 extconf.rb
require 

Ruby下使用SWIG封装libcurl

本文通过在ruby下使用SWIG封装libcurl来简要描述如何通过SWIG来扩展ruby。
关于SWIG的入门使用可参见 使用SWIG扩展ruby性能
一、关于SWIG
SWIG全称为 Simplified Wrapper and Interface Generator,通过swig可以方便快捷的使用c/c++扩展php, ruby等语言以提高性能或满足其它用途。
二、关于libcurl
libcurl是一个著名的http/ftp库,通过libcurl可能轻松通过http/ftp协议访问网络。
三、流程

Ruby的预定义变量

一、异常
名称描述相当于$!捕获的异常Exception$@异常的backtraceException#backtrace例:begin
raise "err msg"
rescue
p $! # #<Runtime

如何编写RubyGems

目标:通过本文章学习并编写一个gem 'hello'
一、认识RubyGems
1、什么是RubyGems
RubyGems是ruby下的包管理系统。最著名gem的当属Rails
2、gem的基本文件布局
文件名类别描述gemspec文件gem的规范说明

从rails回到了php

从rails回来,重新用起了php,起因还是由于rails render一个63k的view要多花去10ms,这个view就一个erb fragment缓存,,即由原来每个响应20ms下降到30ms,降低了足足50%,很受伤,后然尝试使用merb,但mer

ruby稳定版已更新为1.9.1-p0

今天发现stable version已从1.8.7升至为1.9.1-p0。一会测试一下兼容性和性能的提升。
相关链接
Ruby官方网站
--2009-02-10补充--
到正式可以用至少还要1个月,许许多多gems都还未能兼容1.9.1。部份版本已出了

rb_yield让ruby/c++更加紧密

用c++写ruby模块提升性能效果显著一文让我初尝甜头,但未免连render都用c++也太得不尝失。自从使用了rb_yield,一切问题迎刃而解。
如代码
class Test
def foo
yield
end
end
相对

用c++写ruby模块提升性能效果显著

对于生成600项item的树型目录。
纯ruby代码大约200ms
包括rails初始化(0-6ms),mysql查询(0-2ms),树型生成(20-30ms),递归render,其它。
经过c++重写后,全部只需10ms。实在太爽啦。
如果那递归re

使用SWIG扩展ruby性能

  在使用ruby/rails的过程中,确实发现有时性能不尽人意,如生成一个拥有600项的item的3层树形结构目录要花去20ms,为提高性能在学习用c/c++写ruby模块的过程中,认识了swig,rubyInline等一系列帮助编写c/c++来提升ru

Rails 使用Haml代替Rhtml

什么是Haml
Haml,一款简洁的的类似Rhtml的插件,可以极大的简少写xhtml等视图代码的量。
安装haml
安装gem
sudo gem install haml
安装haml plugin至rails
haml --rails [rails