Erlang/Elixir 这是我见过的最黑的事情……

darkbaby123 · 2015年11月26日 · 最后由 darkbaby123 回复于 2015年11月27日 · 4085 次阅读

事情的起因是 Dash 支持 Hex Docsets 了,我就去下了 Phoenix 和 Ecto 的文档,然后看到了有个包叫 Rails …… 文档里面写着:

A plug to make your Elixir/Phoenix applications performance more in line with Rails.

源码……

defmodule Rails do
  import Plug.Conn

  def init(options) do
    options
  end

  def call(conn, _opts) do
    rails_penalty = 500..1200 |> Enum.shuffle |> Enum.at(0)
    :timer.sleep(rails_penalty)
    conn
  end
end

BTW 这个包的版本号是 4.2 ……

怎么用:

plug Rails   # 如果嫌快了还可以多加几行

看来 Rails 的性能快跟 Emacs 的脚踏板一样变成群众喜闻乐见的标志性槽点了

有篇文章好像专门解释了 Phoenix 和 Rails 的差别,Phoenix 是 Erlang OTP 体系的一部分,而 Rails 更独立,rails 的扩展都是围绕 rails 进行的。https://dockyard.com/blog/2015/11/18/phoenix-is-not-rails

def call(conn, _opts) do
  rails_penalty = 500..1200 |> Enum.shuffle |> Enum.at(0)
  :timer.sleep(rails_penalty)
  conn
end

虽然不知道发生了什么 但是莫名戳中笑点。

#2 楼 @so_zengtao 其实就是在 500..1200 间找个随机数来延时。。。

#3 楼 @los 这个倒是看懂了 结合楼主的吐槽才有笑点

没关系的,我们做 rails 的自己都吐槽。。。。。。

😄 哈哈我去搞个 php,python 版的

如果嫌快……这样真的好吗?觉得 Rails 酱很可怜兮兮的啊…… 🐤

@jimrokliu 很不错的文章,谢谢推荐!近段时间学 Phoenix 的感觉就是更严格,但也更松散,一个 Phoenix 项目更像一个预装了几个 Hex 包的 Elixir 项目,Phoenix 生成的项目代码更像是 scaffold,都很简单也非常容易改写。

@yukihiro_matz Python 应该跟 Ruby 差不多速度吧?

@nightire Rails 性能已经被黑过无数次了,习惯就好。现在但凡 Web 框架比性能都会不怀好意地拉上 Rails 😄

需要 登录 后方可回复, 如果你还没有账号请 注册新账号