- RSS订阅
分类目录
- FreeBSD (3)
- Linux (27)
- archlinux (4)
- chromium (5)
- ubuntu/debian (14)
- WP使用 (3)
- WP原创插件 (1)
- 系统管理 (8)
- 编程 (63)
- C/C++ (21)
- javascript (6)
- php (1)
- PostgreSQL (7)
- ruby (19)
- 1 ruby/基础 (5)
- 2 ruby/rails (7)
- 3 ruby/c++ (5)
- 4 rubygems (1)
- 5 ruby/其它 (1)
- Vim (6)
- 版本控制 (2)
- 闲聊 (19)
- dvorak (5)
-
最近文章
近期评论
- Re: node.js成也异步,败也异步,评node.js的异步特性
现在cluster并到Node中,从文档中也可以读到对Nod e单线程的描述 http://nodejs.org/docs/v0.6......(JiangMiao) - Re: node.js成也异步,败也异步,评node.js的异步特性
Node是否多线程参见上面对于libuv的描述。 实际上不需要任何异步理论知识,也可从种种迹象看出Node的单 线程特性。 1.......(JiangMiao) - Re: node.js成也异步,败也异步,评node.js的异步特性
没看到正确的技术论点,看到更多的是两个人相互吹捧。 不过可惜了,Node不是单线程的.......(Heron Huang) - Re: [WP插件]WP Cleaner v1.1.5
Alex介绍这款名为 WP Cleaner 的插件,能清除冗余数据,彻底解决日志草稿和修订版的问题。...(色落De Alex) - Re: [WP插件]WP Cleaner v1.1.5
没设置过。。不清楚。。...(JiangMiao)
- Re: node.js成也异步,败也异步,评node.js的异步特性
小工具
功能
首页 » 3 ruby/c++
Ruby C++ 扩展
早年写过用C++ + SWIG写Ruby插件的文,但实际中还是以原生C++写Ruby扩展,因为也相当简单。但长久没用还是会忘记,不得不翻以前的老代码回忆,写下这篇博文,若下次再忘记,也不至于去翻仓库。
建立 extconf.rb
require
建立 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协议访问网络。
三、流程
关于SWIG的入门使用可参见 使用SWIG扩展ruby性能
一、关于SWIG
SWIG全称为 Simplified Wrapper and Interface Generator,通过swig可以方便快捷的使用c/c++扩展php, ruby等语言以提高性能或满足其它用途。
二、关于libcurl
libcurl是一个著名的http/ftp库,通过libcurl可能轻松通过http/ftp协议访问网络。
三、流程
rb_yield让ruby/c++更加紧密
用c++写ruby模块提升性能效果显著一文让我初尝甜头,但未免连render都用c++也太得不尝失。自从使用了rb_yield,一切问题迎刃而解。
如代码
class Test
def foo
yield
end
end
相对
如代码
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
纯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