ruby-on-rails - 高性能 REST API - 哪种语言/堆栈?

标签 ruby-on-rails api node.js scala rest

<分区>

我正在使用 Ruby on Rails 开发网站。我想单独开发 REST API (JSON) 以最大限度地提高性能,Rails 堆栈带走了太多东西。

是否有任何性能基准?您认为什么会产生最佳性能?我目前正在考虑以下内容,因为这是我的经验。还有什么我应该考虑的吗?它应该是轻量级的。

  • node.js
  • Scala 喷雾 (http://spray.io/)
  • ruby 西纳特拉

谢谢!

最佳答案

总结:最大限度地提高开发人员的绩效。使用你最了解的堆栈。首先让它工作,然后让它变快。

Are there any performance benchmarks out there?

有各种各样的基准。比方说,node.js 可以处理 100k HPS(每秒 helloworld 数)而 Sinatra 只能处理 80k。它告诉你什么?什么都没有。

此外,有时更高的性能需要付出高昂的代价。以 ruby​​ C 扩展为例。当然,C 比 Ruby 运行得更快,但它会阻止其他线程在其他内核上运行(因为 GIL)。

因此,不要仅根据互联网上的基准数据来选择技术。除了原始 HPS 数之外,还有很多因素需要考虑。

LINK:如果您认为 Rails 太重,您应该尝试 rails-api .它基本上是 Rails 的精简版(您不需要 cookie 身份验证或 api 服务器中的 MSIE 渲染助手等东西)。


个人故事

我运行一个 API 服务器来处理一些负载。第一个版本是用 Rails 编写的。然后我想“嘿,Rails 太臃肿了 (c),让我们用 Sinatra 重写一切吧”。然后我的挫败感一波接一波地袭来。事实证明,Rails 做了很多我不喜欢的小而有用的事情。我放弃了,又用 Rails 重写了它(吸取教训),从此过上了幸福的生活。

关于ruby-on-rails - 高性能 REST API - 哪种语言/堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650861/

相关文章:

ruby-on-rails - 使用设计加密其他表列

ruby-on-rails - 我的 SOAP 服务的集成/请求 rspec 测试

ruby-on-rails - 如何跳过Devise的SessionsController的before_filter?

javascript - 将 python 请求转移到 node.js 请求时遇到问题

sql - 这个 SQL 查询怎么可能将重复值插入到数据库中?

java - PrintWriter 和 PrintStream 从不抛出 IOExceptions

Python Glassdoor API

c# - 从 ASP .NET Core Web API 方法返回完整的 XML 响应

node.js - NodeJs 在 Create React App 中导入文件

node.js - typescript - tsc 如何将其他文件类型复制到 dist 文件夹