• 尝试在 Windows 上编译了最新的 Ruby,版本是:

    ruby -v
    ruby 3.0.0dev (2020-12-22T22:20:14Z master 74a3569b59) [x64-mswin64_140]
    

    先跑了一下 evt 的 http_server.rb

    $ wrk -t 4 -c 8192 -d 5s http://127.0.0.1:3002
    Running 5s test @ http://127.0.0.1:3002
      4 threads and 8192 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   701.41ms  312.39ms   1.75s    80.00%
        Req/Sec     8.39      1.86    15.00     82.93%
      43 requests in 5.12s, 2.10KB read
      Socket errors: connect 7176, read 0, write 66885, timeout 3
    Requests/sec:      8.39
    Transfer/sec:     419.54B
    

    接下来跑 midori

    wrk -t 4 -c 8192 -d 5s http://127.0.0.1:8080
    Running 5s test @ http://127.0.0.1:8080
      4 threads and 8192 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency    88.24ms  156.39ms   1.92s    98.16%
        Req/Sec     2.03k     2.28k    8.88k    82.46%
      27624 requests in 5.12s, 1.95MB read
      Socket errors: connect 7176, read 0, write 64339, timeout 52
    Requests/sec:   5392.87
    Transfer/sec:    389.72KB
    

    在 Windows 上就不追求性能了,只要能用就行。😀

    发现跑完之后,过一会儿 midori 就出错:

    C:/ruby-windows/lib/ruby/gems/3.0.0/gems/evt-0.3.1/lib/evt/backends/select.rb:25:in `select': Bad file descriptor (Errno::EBADF)
            from C:/ruby-windows/lib/ruby/gems/3.0.0/gems/evt-0.3.1/lib/evt/backends/select.rb:25:in `select_wait'
            from C:/ruby-windows/lib/ruby/gems/3.0.0/gems/evt-0.3.1/lib/evt/backends/select.rb:25:in `wait'
            from C:/ruby-windows/lib/ruby/gems/3.0.0/gems/evt-0.3.1/lib/evt/backends/bundled.rb:39:in `run'
            from C:/ruby-windows/lib/ruby/gems/3.0.0/gems/evt-0.3.1/lib/evt/backends/bundled.rb:150:in `close'
    
  • Run - Edit Configurations 把 Ruby SDK 那一项 改成 Use other SDK 然后选择一个 SDK 试试。

  • 我个人觉得在不熟悉 Linux/Mac 的情况下 Windows 开发是最高效的,先不说在 VBox 虚拟机下会遇到奇葩的问题 (开个 IDE 要 3 分钟),在 Linux/Mac 开发没有很大的效率提升,反而因为不熟悉而降低了开发效率。

    对于一个不熟悉 Linux 的初学者来说,如果学习 Ruby/Rails 需要先折腾一下 Linux 或者买个 Mac,何不学习 Python/Django 呢?