• 哭啊。。。

  • 公司买了企业级路由、开了专线,找专人调网络。有的时候,网络还是不好。。。。

  • Rails 并发问题 at 2018年07月12日

    抢购 的请求都是 GET?没更新数据库吗?

  • Rails 并发问题 at 2018年07月12日

    猜一下,都是更新操作,上了锁,然后释放慢了?callback 里有什么耗时的操作?或者 counter cache 之类的被锁了?

  • Clojure 了解下。

    下划线、中划线、驼峰。。。

  • 执行中的任务会丢吧?

  • 阻塞怎么回事

    假设一个请求,需要 2 秒,那这 2 秒,耗时在哪?

    一个 request 的大体流程,三次握手,发请求,接收请求,关闭连接。

    CPU、内存的操作,速度都很快,不需要考虑。

    我们单独考虑请求发出去,等待放回这个过程。

    请求已经被发出去,IO#read 读数据,由于数据还没从服务器返回,一直等数据返回后,才能读到数据,在等待数据返回这段时间,process 什么也没做的(被挂起了),所以是一个阻塞操作。

    就好比,你要一个人帮忙买东西,你跟这个人说,帮忙买 A,然后你就睡觉了。A 回来的时候,上帝(操作系统)会再叫醒你。

    如果想高效一点,很自然的可以让多个人同时去买,然后让他们把买好的东西放到一张桌子上,你时长去检查,桌子上有没有东西就可以了。这样就从,同一时间买一样东西变成了同一时间买多样东西。

    你在系统中就是线程,跑腿的就是一个 IO 对象,检查桌子上是否有东西,就是 IO#select 操作。

    这个 IO 模型就是 IO 多路复用。

  • Let's GO 语言吧 at 2018年06月24日

    只是请求吗?可以考虑丢 ruby 的线程里。只是请求的话,本地跑到 1k/s 还是可以的。

    不过这个场景,用 nio 更合适些。线程毕竟耗资源。

    这种场景,go 也是要上 nio 吧?

    最后还是 erlang 大法好!

  • CPU 占用率是多少?

  • 浅谈尾递归 at 2018年06月06日

    😹