问题标签 [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.
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
ruby - 如何在 rubinius 中进行线程转储?
我想对我的 rubinius 应用程序进行线程转储,以帮助调查明显的死锁问题。我的应用程序使用的是 rbx-3.21,如果可能的话,我不希望更改它。
我试过像这里描述的那样做一个纯 ruby 解决方案,但是线程回溯不能正常工作 - 它们看起来都与执行堆栈转储的线程相同。结果如下所示:
ruby - rbenv 无法安装 rubinius
我正在尝试通过安装rubinius
并rbenv
出现此错误。我不确定这里有什么问题。
这是安装的(成功)结果jruby
:
这是安装的(失败)结果rubinius
:
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)
ruby - 如何判断我使用的是哪个 Ruby 解释器?
我看过这个帖子,但我的问题可能更基本:
鉴于该线程 [1] 中接受的答案的响应是给我的,"/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby"
我怎么知道那是 MRI、JRuby 等?如果是其他主要口译员,会是什么样子?
[1] 为了节省几秒钟,RbConfig.ruby
mysql - 通过 shell 脚本使用 gcloud 控制台连接到 MySQL 数据库
我想编写一个 shell 脚本,我将在其中进入任何gcloud
侧面环境,并且我将有多个将运行的 docker 映像。我将在任何容器中以 bash 模式进入,然后运行gcloud connect MySQL
只是Rubik
. 我怎样才能输入这些使用shell script
?我写的脚本很简单::
该命令一直运行到“ docker exec -ti cluster-name bash ”并在 Rubik 内部进入 bash 模式,但之后停止运行并且不运行下一条语句。如果是这样,那么我可以创建其他数据库脚本。我如何实现它?我被困住了。任何直升机将不胜感激。