玩!框架与Ruby on Rails

soc*_*ket 8 ruby java performance ruby-on-rails playframework-2.0

这不是一般comparisson的要求:

玩!框架是基于Java的,这意味着代码被解释为字节码,然后由JVM在运行时编译.另一方面,Ruby是一种动态语言,这意味着每次请求都会解释代码.这对每个程序员来说都是显而易见的.

另一个方面是开发过程和语言的简易性(强类型与弱类型).

目前我正在开发一个使用Play的新网站!
所以,对于问题:

  1. HTTP服务器的性能(Play!在JVM上运行,Ruby是动态的) - 它对网站真的很重要吗?你会看到显着的差异吗?
  2. 我觉得RoR拥有更大的社区,资源,教程等等,而且它对我有点打击.还是应该呢?

pje*_*pje 6

这得看情况.

  1. Ruby并不是一种特别快的语言,但语言执行速度可能不是你的瓶颈 - 根据我的经验,ruby的相对缓慢通常只是外部服务调用(例如数据库),算法问题(例如同步,阻塞)的下降子程序),以及通常不适合问题域的设计选择.保持整个技术堆栈的透视.

  2. 社区很重要,Ruby/Rails非常活跃.AFAIK Play较小,但根据我自己的经验,Java和Scala(以及其他有JVM实现的其他语言(包括Ruby))也有很好的社区.

所有这些都取决于您的应用程序的特定需求(和您!).如果Ruby太慢,那就太慢了.如果您绝对需要一些仅存在于Java中的库,请使用Java.选择适合任务的工具.但是要保持整个任务(以及您自己完成该任务的需求)的透视.


hon*_*ium 4

这两个模型之间有很多差异。至于性能,我对基于 Java 和 RoR 的看法:

1、基于Java的网站(运行在多个Java应用服务器上),有其独特的优势,如多线程模型(读取本地数据的最快速度)、全局内存、易于池化资源、大量高效的客户端连接各种类型第三部分 OSS 工具...

2、RoR(和Php)模型的HTTPServer连接,需要“代理”请求到App层。多进程模型增加了进程间通信。而且作为“动态语言”,性能较低。

但是,如今,网络编程依赖于其他工具来提升。缓存、NoSQL(Memcached、Redis、TT/TC)、IPC/RPC框架(netty、akka等)的广泛使用……转移了瓶颈。据我了解,以上两种模型均已在大型网络社交游戏中得到应用。