问题标签 [rubinius]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
409 浏览

ruby - 为什么尾递归 gcd 比使用 rubinius 的 while 循环更快

我有这两个 gcd 函数的实现:

函数 gcd1 是尾递归的,而 gcd2 使用 while 循环。

我已经验证了 rubinius 通过对阶乘函数进行基准测试来实现 TCO,只有阶乘函数的基准显示递归版本和迭代版本是“相同的”(我使用了 benchmark-ips)。

但是对于上述情况,基准测试表明 gcd1 至少比 gcd2 快两倍(递归比迭代快两倍,甚至更快)。

我用来基准测试的代码是这样的:

结果 :

我正在运行 Arch linux x64,处理器 i5-5200 2.2 GHZ 四核。

红宝石实现是 Rubinius 3.40 。

那么递归怎么能比循环快呢?

更新

只是说斐波那契有相同的情况:尾递归版本至少是循环版本的两倍,我用于斐波那契的程序:http: //pastebin.com/C8ZFB0FR

0 投票
1 回答
31 浏览

ruby - 如何在 rubinius 中进行线程转储?

我想对我的 rubinius 应用程序进行线程转储,以帮助调查明显的死锁问题。我的应用程序使用的是 rbx-3.21,如果可能的话,我不希望更改它。

我试过像这里描述的那样做一个纯 ruby​​ 解决方案,但是线程回溯不能正常工作 - 它们看起来都与执行堆栈转储的线程相同。结果如下所示:

0 投票
1 回答
272 浏览

ruby - rbenv 无法安装 rubinius

我正在尝试通过安装rubiniusrbenv出现此错误。我不确定这里有什么问题。

这是安装的(成功)结果jruby

这是安装的(失败)结果rubinius

0 投票
2 回答
1488 浏览

ruby - MRI Ruby 和 jRuby 之间的性能差异

在做一些基准测试来回答这个关于连接数组的最快方法的问题时,我很惊讶当我在 jRuby 中进行相同的基准测试时,测试速度要慢得多。

这是否意味着关于 jRuby 比 MRI Ruby 更快的旧慢板已经不复存在?或者这是关于如何在 jRuby 中处理数组?

这里的 MRI Ruby 2.3.0 和 jRuby 9.1.2.0 中的基准测试和结果都运行在 64 位 Windows 7 机器上,所有 4 个处理器都忙于 50-60%,使用的内存为 ± 5.5GB。jRuby 必须以参数启动-J-Xmx1500M以提供足够的堆空间。由于堆栈级别太深,我不得不通过 push 删除测试,并且还删除了最慢的方法,以免测试时间过长。使用的 Jave 运行时:1.7.0_21

这个问题与使用的不同方法无关,请参阅原始问题。在这两种情况下,MRI 都快 7 倍!有人可以解释我为什么吗?我也很好奇其他实现是如何做的,比如 RBX (Rubinius)

0 投票
2 回答
1823 浏览

ruby - 如何判断我使用的是哪个 Ruby 解释器?

我看过这个帖子,但我的问题可能更基本:

鉴于该线程 [1] 中接受的答案的响应是给我的,"/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby"我怎么知道那是 MRI、JRuby 等?如果是其他主要口译员,会是什么样子?


[1] 为了节省几秒钟,RbConfig.ruby

0 投票
0 回答
64 浏览

mysql - 通过 shell 脚本使用 gcloud 控制台连接到 MySQL 数据库

我想编写一个 shell 脚本,我将在其中进入任何gcloud侧面环境,并且我将有多个将运行的 docker 映像。我将在任何容器中以 bash 模式进入,然后运行gcloud connect MySQL只是Rubik. 我怎样才能输入这些使用shell script?我写的脚本很简单::

该命令一直运行到“ docker exec -ti cluster-name bash ”并在 Rubik 内部进入 bash 模式,但之后停止运行并且不运行下一条语句。如果是这样,那么我可以创建其他数据库脚本。我如何实现它?我被困住了。任何直升机将不胜感激。

0 投票
0 回答
10 浏览

solrj - 使用“RegExP”连接我的 LOG 的两个字段

各位,下午好!

我需要以下“RegExP”(它是 Ruby 语言)的帮助。我目前正在使用一些插入到 Apache Solr 中的 LOG。因此,我将拥有此日志并从此日志中解析字段(例如:日期、时间、devname 等)。

日志是:

日志 = {date=2021-11-11 time=11:38:56 devname="FGT-LAB" ... 其他字段}

我正在尝试应用 REGEX 来加入两个字段(日期和时间)并得到这样的结果:

在此处输入图像描述

谢谢你们的帮助,伙计们!