问题标签 [mri]

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 回答
50 浏览

ruby - 为什么我不能直接打印reduce/inject的结果

在 ruby​​ 解释器中发现了一个有趣的怪癖——至少在 MRI 2.4.2 中。

据我所知,下面的每个代码片段都应该打印“123”。如果我尝试直接打印 reduce 的结果,我会得到NoMethodError: undefined method '' for 1:Integer(或数组包含的任何类型)但是如果我首先保存结果然后打印它,它工作正常..

所以,这段代码被破坏了:

这段代码有效:

这些应该完全一样,对吧?这应该作为错误提交吗?我只是在这里遗漏了一些基本的东西吗?

我认为它至少应该显示试图调用哪种方法。在谷歌中找不到任何关于没有方法名称的未定义方法...

0 投票
1 回答
142 浏览

ruby - MRI 优于 JRuby 的典型工作负载示例有哪些?

我有一个 Ruby 网络服务,我最近检查了使用 JRuby(9.1.17.0,OpenJDK 1.8)相对于当前使用 MRI(2.5.0)是否会提高性能。我预计可能会出现这种情况,因为性能瓶颈是为计算响应数据而执行的大量“基本算术”,而 JRuby 在计算量大的基准测试中往往优于 MRI。

然而,事实证明并非如此:我尝试了许多 JRuby/JVM 选项的组合,但“稳定状态”比 MRI 慢 2 倍。在重复请求约 100 次后达到稳定状态,此时 JVM 显然正在发挥其 JIT 魔力,因为性能相对于初始请求提高了 2.5 倍。

我想了解这是预期的还是意外的行为。所以我想知道:预计 JRuby 会比 MRI 慢的典型工作负载是什么?其中确实是“浮点数的基本算术”吗?

(MRI 和 JRuby 的性能瓶颈在同一个地方,使用适当的分析器确定。最初这篇文章说 JRuby 只慢了 20%,但我已经引入了一项优化,将 MRI 性能提高了近 2 倍,但是几乎没有改变 JRuby 的性能。我怀疑 JVM 自动执行了相同的优化,因为它基本上相当于“恒定折叠”)

0 投票
2 回答
65 浏览

ruby - `[[1, 2]].map {|xy@(x, y)| 等参数中的 as 模式是否存在有效的 Ruby 语法?[xy, x + y]}`?

鉴于以下目前在 Ruby 中工作,就像 Haskell 的构造函数模式匹配的一个非常有限的版本:

我想知道它是否还支持“as-patterns”(Haskell 称之为)的语法,这基本上是将多个绑定放在相同的参数上,如下所示:

我尝试@了和其他符号,但它们都导致语法错误。

0 投票
1 回答
421 浏览

ruby - 学习 Ruby 语法的最官方文档或方法是什么?

https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html,由 Yukihiro Matsumoto 本人撰写,但鉴于我找不到提及&.(eg a&.b) 或&:(eg m(&:f)),它似乎不是很更新。我记得曾几何时,有人试图根据 MRI 的单元测试记录它,但由于缺乏开发人员的协作而放弃并放弃了该项目。

现在,似乎唯一的学习方法是在 StackOverflow 或一些开源 ruby​​ 项目上偶然发现新语法。

0 投票
1 回答
118 浏览

docker - 使用 NAS 设置 XNAT 服务器

我正在使用他们的容器服务设置 XNAT 服务器。但我想将我的文件存档在单独的服务器/NAS 中。

有没有人这样做过?有这方面的教程吗?

谢谢。

0 投票
1 回答
19 浏览

imagej - 使用 ImageJ MRI Retina Tool ijm 的错误消息

有人可以帮我弄这个吗?有些图像我可以测量,但有些我不能。然后弹出此错误消息。我使用相同的设置测量了所有这些,但有些我可以测量,有些我不能。

这是我遇到的问题:

在此处输入图像描述

如果有人可以帮助我,我将非常感谢您的帮助。

谢谢你。

0 投票
1 回答
180 浏览

ruby - 分配是红宝石MRI中的原子操作吗?

假设我的课堂上有这两种方法。

我将产生多个线程来调用set_val不同的值。是否保证读取 from@val返回正确的值,即不是最后分配的值,而是传递给的值set_val?我在阅读时会得到一些奇怪的东西吗?赋值操作是原子的吗?无论线程数如何,它都是不可分割的吗?

0 投票
1 回答
38 浏览

c - 如何将用 C 编写的块传递给 Ruby 的 rb_mod_refine?

也许更一般地说,你如何将一个用 C 编写的块传递给另一个接受块的 C 函数?我知道我可以做这样的事情:

但我觉得必须有一种方法可以rb_mod_refine直接调用而不是通过rb_block_call.

有任何想法吗?谢谢!

0 投票
1 回答
803 浏览

image - 如何使用 ADNI 数据集将 ImageDataGenerator 与 nii/NIFTI 文件一起使用

我正在尝试使用 keras 的 ImageDataGenerator 类加载我的数据,但我遇到了麻烦,因为图像文件不是标准的 jpeg/png 图像文件,而是 nii.gz 文件。我找到了这个 github repo https://github.com/sremedios/nifti_image_generator/blob/master/utils/nifti_image.py但输出的尺寸不匹配并且

引发错误

0 投票
1 回答
183 浏览

ruby - 在 Ruby 中,为什么 `while true do i += 1 end` 不是线程安全的?

根据这篇文章i += 1在 MRI Ruby 中是线程安全的,因为抢占只发生在函数调用结束时,而不是介于i += 1.

下面的可重复测试表明这是真的: 可重复测试

但是为什么while true do i += 1 end不是线程安全的,如下面的第二个测试所示,当线程 1 仍在执行时,线程 1 被线程 2 抢占了while true do i += 1 end

第二次测试

请帮忙。

以下是代码参考:

测试一:

测试二: