亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Ruby中使用SWIG編寫ruby擴展模塊實例

2019-10-26 19:24:22
字體:
來源:轉載
供稿:網友

在使用ruby/rails的過程中,確實發現有時性能不盡人意,如生成一個擁有600項的item的3層樹形結構目錄要花去20ms,為提高性能在學習用c/c++寫ruby模塊的過程中,認識了swig,rubyInline等一系列幫助編寫c/c++來提升ruby性能的輔助工具。

rubyInline用于內嵌c/c++程序,簡單快捷,swig則幫助我們更容易地用c/c++寫出獨立的ruby模塊。

swig的入門使用方法

目標:用swig/c++編寫一個ruby模塊Test,并提供add方法作加法運算。

相關文件:
(1).test.i 接口
(2).test.h 頭文件
(3).test.cxx 函數實現
(4).extconf.rb 用于生成makefile
(5).(自動)test_wrap.cxx swig生成的test封裝
(6).(自動)Makefile Makefile文件由ruby extconf.rb得到
(7).(自動)test.so ruby模塊 由make得到

1、建立接口文件test.i
代碼如下:
%module test
%{
//包含頭文件
#include "test.h"
%}
//接口add
int add(int,int);

2、編寫wrap文件
代碼如下:
swig -c++ -ruby test.i

得到test封裝文件test_wrap.cxx

3、編寫test.h與test.cxx
代碼如下:
//test.h
#ifndef _TEST_TEST_H
#define _TEST_TEST_H
extern int add(int,int);
#endif
//test.cxx
#include "test.h"
int add(int left,int right)
{
        return left+right;
}

4、編寫extconf.rb用于快速生成makefile
代碼如下:
require 'mkmf'

dir_config 'test'
#stdc++庫,add函數未用到
$libs = append_library $libs,'stdc++'
create_makefile 'test'

運行 ruby extconf.rb 得到 Makefile 文件

5、生成test模塊

運行 make 得到模塊 test.so

6、測試

代碼如下:
irb
irb(main):001:0> require 'test'
=> true
irb(main):002:0> Test.add 3,4
=> 7
irb(main):003:0> Test.add 3333333333333333333333,44444444444444444
TypeError: Expected argument 0 of type int, but got Bignum 3333333333333333333333
        in SWIG method 'add'
        from (irb):3:in `add'
        from (irb):3
        from :0
irb(main):004:0>

測試成功

7、swig

swig支持很多c++的高級特性來編寫ruby的模塊,如類,繼承,重載,模板,stl等。

8、相關鏈接

(1).swig
(2).swig/ruby 文檔

9、備注

本文的add函數過于簡單,對比ruby 3+4性能不升反降。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍av在线| 亚洲自拍偷拍在线| 国产欧美va欧美va香蕉在| 国产成人精品免费久久久久| 中文字幕亚洲一区| 精品呦交小u女在线| 欧美激情一区二区久久久| 久久91亚洲精品中文字幕| 亚洲视频一区二区三区| 欧美一级大片在线免费观看| 亚洲乱亚洲乱妇无码| 欧美日韩国产一中文字不卡| 一区二区三区视频免费| 久久国产精品久久久久久久久久| 亚洲国产一区二区三区在线观看| 最新91在线视频| 97视频人免费观看| 伊人久久久久久久久久久| 亚洲视屏在线播放| 国产精品成人aaaaa网站| 最近中文字幕2019免费| 亚洲综合在线小说| 7777精品久久久久久| 日韩高清电影免费观看完整| 欧美激情国产高清| 97色伦亚洲国产| 亚洲女性裸体视频| 国产精品久久久久久久久久新婚| 久久精品视频中文字幕| 国产91ⅴ在线精品免费观看| 国产亚洲一区精品| 国产精品久久久久久久久免费看| 国产成人精品av在线| 国产成人久久精品| 亚洲一级黄色av| 91精品久久久久久久久久久久久| 欧美日韩中文在线观看| 尤物精品国产第一福利三区| 国产福利精品视频| 亚洲福利视频在线| 亚洲国产精品资源| 欧美小视频在线| 国产伦精品一区二区三区精品视频| 91精品视频在线免费观看| 大胆人体色综合| 夜夜嗨av色一区二区不卡| 中文字幕av一区| 国产精品高清在线| 欧美成人中文字幕| 亚洲一区二区三区四区在线播放| 91精品视频在线免费观看| 亚洲精品xxxx| 亚洲人高潮女人毛茸茸| 欧美激情小视频| www.日本久久久久com.| 亚洲奶大毛多的老太婆| 国内精品久久久| 久久久99久久精品女同性| 精品国产1区2区| 久久欧美在线电影| 精品久久久国产| 亚洲免费av电影| 亚洲偷欧美偷国内偷| 91精品在线看| 日韩免费在线看| 日韩影视在线观看| 国产精品一区二区三区免费视频| 亚洲激情视频网| 国产精品视频区1| 成人网在线视频| 91国产一区在线| 狠狠色狠色综合曰曰| 久久精品91久久香蕉加勒比| 亚洲高清久久网| www.亚洲一二| 欧美老女人在线视频| 欧美在线视频免费| 久久久av免费| 黑人巨大精品欧美一区免费视频| 国产做受高潮69| 亚洲自拍偷拍一区| 亚洲精品美女在线观看| 韩国v欧美v日本v亚洲| 久久久久久亚洲精品| 91精品国产高清久久久久久91| 亚洲人成啪啪网站| 国产亚洲一区精品| 欧美精品少妇videofree| 亚洲欧美日韩国产中文| 国产精品美乳一区二区免费| 668精品在线视频| 成人97在线观看视频| 国产精品影片在线观看| 亚洲女人初尝黑人巨大| 午夜精品一区二区三区视频免费看| 久久免费观看视频| 秋霞成人午夜鲁丝一区二区三区| 国产精品爱啪在线线免费观看| 国产精品白丝jk喷水视频一区| 亚洲电影在线看| 中文字幕日韩欧美在线视频| 日韩av片免费在线观看| 国产精品99久久久久久久久久久久| 日韩精品中文字幕视频在线| 成人黄色激情网| 综合国产在线观看| 欧美专区在线观看| 久久久在线视频| 亚洲欧美精品伊人久久| 视频在线观看99| 欧美激情一区二区三区在线视频观看| 午夜精品一区二区三区在线| 尤物99国产成人精品视频| 在线电影欧美日韩一区二区私密| 日韩高清电影免费观看完整| 亚洲偷欧美偷国内偷| 91天堂在线观看| 欧美极品少妇xxxxⅹ免费视频| 国产日韩亚洲欧美| 日本精品免费观看| 欧美日韩一区二区三区在线免费观看| 91po在线观看91精品国产性色| 成人午夜一级二级三级| 日韩h在线观看| 亚洲国产成人久久综合一区| 91亚洲精品久久久久久久久久久久| 日韩欧美一区二区在线| 欧美精品videosex性欧美| 久久99热精品| 3344国产精品免费看| 亚洲人成网7777777国产| 亚洲精品成人av| 日本成人在线视频网址| 亚洲第一视频在线观看| 欧美成人精品在线观看| 91牛牛免费视频| 亚洲精品日产aⅴ| 一区二区三区天堂av| 日韩av片电影专区| 2019亚洲日韩新视频| 欧美黄色免费网站| 大荫蒂欧美视频另类xxxx| 91sao在线观看国产| 国产中文字幕91| 欧美成人在线免费视频| 国产精品入口日韩视频大尺度| 91精品国产高清自在线看超| 久久精品中文字幕免费mv| 亚洲午夜精品久久久久久性色| 亚洲欧美综合精品久久成人| 欧美日韩电影在线观看| 国产精品伦子伦免费视频| 免费99精品国产自在在线| 亚洲精品视频中文字幕| 日韩中文字幕视频在线| 日韩一级裸体免费视频| 日韩精品免费在线播放| 亚洲精品久久久久国产| 亚洲综合中文字幕68页| 欧美专区第一页| 欧美—级高清免费播放| 国产精品视频在线播放| 亚洲老板91色精品久久| 国产有码在线一区二区视频|