新版YARV(基于Ruby 1.9.0 v2006-11-01)编译/安装/测试手记

昨晚作SVN例行更新时发现了这次变动。今天有空,作了个尝试:

一、Win32平台下安装

cd /yarv-svn/win32
configure
nmake(需要用到Bison,我用的是Cygwin带的)
nmake install-nodoc

默认会安装在当前盘符根目录下的/usr文件夹

C:/usr/bin>ruby -v

ruby 2.0.0 (Base: Ruby 1.9.0 2006-11-01) [i386-mswin32]
YARVCore 0.4.1 Rev: 572 (2006-11-04) [opts: [inline method cache] ]

如果现在运行程序,还是会报错,说ubygem未找到。需要将lib/ruby/site_ruby/1.8下的rubygems.rb, ubygems.rb以及rubygems, rbconfig这两个文件夹copy到usr/lib/ruby/site_ruby/2.0下;而且现在还未安装扩展库,还得将yarv-svn/ win32/.ext目录下的内容Copy到usr/lib/ruby/2.0下。就OK了。

二、Untuntu平台下安装
一开始编译时出错如下:

gcc -g -O2 -DRUBY_EXPORT -I. -I. -c eval_load.c
gcc -g -O2 -DRUBY_EXPORT -I. -I. -c eval_proc.c
eval_proc.c:14: 错误: 对 ‘rb_cUnboundMethod’ 的静态声明出现在非静态声明之后
ruby.h:725: 错误: ‘rb_cUnboundMethod’ 的上一个声明在此
eval_proc.c:15: 错误: 对 ‘rb_cMethod’ 的静态声明出现在非静态声明之后
ruby.h:710: 错误: ‘rb_cMethod’ 的上一个声明在此
make: *** [eval_proc.o] 错误 1

注释掉ruby.h三行多余的声明后(line:699,710,725),在Ubuntu下编译通过。

步骤总结:

autoconf
./configure --program-suffix=-yarv
make
make install-nodoc
(其余步骤与Win32下的类似)

suninny@lenovo-laptop:~/work/yarv-svn$ ruby-yarv -v

ruby 2.0.0 (Base: Ruby 1.9.0 2006-11-01) [i686-linux]
YARVCore 0.4.1 Rev: 572 (2006-11-04) [opts: [direct threaded code] [inline method cache] ]

三、跨平台对比测试:

这是那个词频统计程序的分值对比(U代表Ubuntu,C代表Cygwin,W代表Win32;/后是内存占用情况;括号中为上次的得分):

UA:3.10s(3.36s)/64M(91M)
UB:3.73s(4.11s)/2.2M(3.2M)
CA:3.16s(3.84s)/68M(95M)
CB:5.31s(6.04s)/5M(5M)
WA:4.98s/69M
WB:7.59s/5M

效能提升还是蛮显著地。令人惊讶的是WB方案中YARV的分值竟然比普通的Ruby184-win32还低。Ruby系列对Win32有偏见呀。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Warning: No configuration directory set! Use --conf <dir> to override. Info: Including Hadoop libraries found via (/opt/hadoop-3.1.2/bin/hadoop) for HDFS access Info: Including HBASE libraries found via (/opt/hbase-2.2.6/bin/hbase) for HBASE access 错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty Info: Including Hive libraries found via (/opt/hive-3.1.2) for Hive access + exec /opt/jdk1.8.0_351/bin/java -Xmx20m -cp '/opt/flume-1.9.0/lib/*:/opt/hadoop-3.1.2/etc/hadoop:/opt/hadoop-3.1.2/share/hadoop/common/lib/*:/opt/hadoop-3.1.2/share/hadoop/common/*:/opt/hadoop-3.1.2/share/hadoop/hdfs:/opt/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/opt/hadoop-3.1.2/share/hadoop/hdfs/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/*:/opt/hadoop-3.1.2/share/hadoop/yarn:/opt/hadoop-3.1.2/share/hadoop/yarn/lib/*:/opt/hadoop-3.1.2/share/hadoop/yarn/*:/opt/hbase-2.2.6/conf:/opt/jdk1.8.0_351//lib/tools.jar:/opt/hbase-2.2.6:/opt/hbase-2.2.6/lib/shaded-clients/hbase-shaded-client-byo-hadoop-2.2.6.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/audience-annotations-0.5.0.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/commons-logging-1.2.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/findbugs-annotations-1.3.9-1.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/htrace-core4-4.2.0-incubating.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/log4j-1.2.17.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/slf4j-api-1.7.25.jar:/opt/hadoop-3.1.2/etc/hadoop:/opt/hadoop-3.1.2/share/hadoop/common/lib/*:/opt/hadoop-3.1.2/share/hadoop/common/*:/opt/hadoop-3.1.2/share/hadoop/hdfs:/opt/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/opt/hadoop-3.1.2/share/hadoop/hdfs/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/*:/opt/hadoop-3.1.2/share/hadoop/yarn:/opt/hadoop-3.1.2/share/hadoop/yarn/lib/*:/opt/hadoop-3.1.2/share/hadoop/yarn/*:/opt/hadoop-3.1.2/etc/hadoop:/opt/hbase-2.2.6/conf:/opt/hive-3.1.2/lib/*' -Djava.library.path=:/opt/hadoop-3.1.2/lib/native org.apache.flume.node.Application --name a1 --conf/opt/flume-1.9.0/conf --conf-file/opt/flume-1.9.0/conf/dhfsspool.conf-Dflume.root.logger=DEBUG,consol SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/flume-1.9.0/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hadoop-3.1.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hive-3.1.2/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 2023-06-08 17:26:46,403 ERROR node.Application: A fatal error occurred while running. Exception follows. org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option: --conf/opt/flume-1.9.0/conf at org.apache.commons.cli.Parser.processOption(Parser.java:363) at org.apache.commons.cli.Parser.parse(Parser.java:199) at org.apache.commons.cli.Parser.parse(Parser.java:85) at org.apache.flume.node.Application.main(Application.java:287)
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值