2017-07-19 86 views
1

我想快速计算Ruby中两个64位整数之间的汉明距离。我很快发现,即使使用Ruby的优化字符串函数等,也不够,所以我转而使用C扩展。相比之下,Pure Ruby以每秒约350,000次比较为基准,C延伸基准约为4,000,000次。有没有支持在Heroku上使用C来扩展Ruby?

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

+0

通常的方式做,这将是创建一个包含C扩展,当它在部署期间所安装的将被编译的瑰宝。 – matt

回答

3

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

我与这需要C扩展工作,并通过使用正确的buildpack解决它的语言学家宝石一些工作。

您可以使用预置的buildpack或建立自己的

+1

尽管这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/16764489) –

+0

我编辑了评论以包含更多说明以防链接改变 –