ruby - 在 64 位操作系统上安装 32 位 Ruby

标签 ruby x86 64-bit passenger

据我所知,当我们在 64 位 Ruby 上运行 Ruby 应用程序时,它比 32 位 Ruby 消耗更多的内存,这是由于指针地址空间。

我的机器有 64GB RAM,所以为了访问完整的 64GB 内存,我安装了 64 位操作系统。

  1. 是否可以在 64 位操作系统上安装 32 位 Ruby?
  2. 通过在 64 位操作系统上安装 32 位 Ruby,我的 32 位 Ruby 是否可以使用 64 GB RAM?
  3. 在 64 位操作系统上运行 32 位 Ruby 的优缺点是什么?

我注意到在 64 位 Ruby 上运行我的 Ruby on Rails 应用程序比在 32 位 Ruby 上消耗更多的内存。我正在使用 Phusion Passenger,因此它会为每个请求 fork 或创建新的 Ruby 进程,因此每个单独的 Ruby 进程(用户请求)在 32 位 Ruby 中被限制为 2 GB,或者整个 Ruby 进程在 32 位中被限制为只能访问 2GB-位 ruby 。


我的 Rails 应用程序代码库很大,我计划在单个服务器中为多个客户端复制与多个 Rails 应用程序相同的代码,因此每一 MB RAM 对我来说都很重要,因此如果有更多 RAM 可用,我可以运行其他应用程序额外的客户。

有关应用程序架构的更多信息,请参阅“(Using phusion passenger + Nginx) running same rails app with multiple instance names with same port (80)”。

最佳答案

Is it possible to install a 32-bit Ruby on 64-bit OS?

  1. 是的,这是可能的。

By installing a 32-bit Ruby on 64-bit OS, will my 32-bit Ruby be able to use 64 GB RAM?

  1. 不,它无法访问 64 GB RAM。 32 位进程默认限制为 2 GB,如果标记为 LARGE_ADDRESS_AWARE,则最大限制为 3 GB,但不会更多。

What are the pros and cons of running 32-bit Ruby on a 64-bit OS?

  1. 缺点:您的内存限制为 2 GB。

不过,你什么都不担心。从 32 位(4 字节)到 64 位(8 字节)的指针大小只影响指针。如果您有 64 GB 的 RAM 和可以使用它们的 64 位处理器,请使用 64 位版本。

关于ruby - 在 64 位操作系统上安装 32 位 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021262/

相关文章:

assembly - assembly 模数 x86

assembly - 将 FASM 中的 80 位 float 与给定精度进行比较

linux - 在 Linux IA-32 汇编程序 (gas) 上创建一个子字符串

c++ - 为什么我的 64 位计算机不能用 C++ 存储 double 2^1024?

ruby-on-rails - 在 Rails 和 ActiveRecord 中查询时忽略某些字段

ruby-on-rails - 解析字符串到时间与原始时间不一样

ruby - 在 Mac 上从 1.1 降级到 OPENSSL 版本 1.0

arrays - 哈希值数组

计算快速对数基数 2 上限

c++ - visual studio 6 中的 128 位整数