ruby-on-rails - 是否支持在 Heroku 上使用 C 扩展 Ruby?

标签 ruby-on-rails c ruby heroku

我试图在 Ruby 中快速计算两个 64 位整数之间的汉明距离。我很快发现即使使用 Ruby 的优化字符串函数等也不够,所以我转向了 C 扩展。作为比较,Pure Ruby 的基准测试速度约为每秒 350,000 次比较,而 C 扩展的基准测试速度约为 4,000,000 次。

我使用了实现 here并在我的电脑上编译它运行良好。我遇到的问题是在 Heroku 上使用它。我尝试使用 ruby extconf.rb make 创建 makefile,它起作用了,然后 make 编译它失败了 make: gcc: Command not found。我是否在部署时执行此操作对我来说并不重要,但我不知道如何在部署时自动运行代码。这让我很烦恼 - 如果有人能提供帮助,我们将不胜感激。

最佳答案

您可以使用 Heroku Buildpacks 来解决这个问题 https://blog.heroku.com/buildpacks

我用语言学家 gem 做了一些工作,它需要 C 扩展才能工作,并通过使用正确的 buildpack 解决了它。

您可以使用预构建的构建包或构建您自己的构建包

关于ruby-on-rails - 是否支持在 Heroku 上使用 C 扩展 Ruby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45197132/

相关文章:

ruby-on-rails - 如何使用 git 维护生产源代码的略有不同的副本?

c - 在 ncurses 中处理信号

ruby - 在初始化方法中设置相应实例变量的值时创建 attr_reader 方法?

javascript - 如何在加载时检查数字或选中的复选框?

ruby - 如何在目录中查找没有扩展名的文件?

ruby-on-rails - Admin 中的 NameError::ResidentsController#destroy Rails

ruby-on-rails - 如何有条件地添加索引

ruby-on-rails - 获取最新的 Ruby 版本

c - linux c 编程中的信号

c - 如何(确切地)更改 GCC 目录搜索路径?