タグ

ブックマーク / meech.hatenadiary.org (2)

  • Emacsを高速起動せよ #kansaiemacs - Emacs ひきこもり生活

    この前の関西Emacsで発表?した内容を完結させた感じのエントリです。この動画の説明です。 みんなEmacsを高速起動したいですよね。ぼくもしたいです。 今回はカーネルの視点からEmacsを高速起動しちゃうよ。 まず実験用に ~/nisehome をHOMEにしてmelpaのパッケージをほぼ全てインストールして、さらにほとんどのパッケージ内のelispをrequireします。すると、めっちゃ起動が遅くなってくれます。具体的に見てみると $ echo 3 | sudo tee /proc/sys/vm/drop_caches $ HOME=$HOME/nisehome emacsで(ファイルキャッシュを全て落としてから)起動してやって (emacs-init-time) を見てやると "348.6 seconds" となってます。だいぶおそいですね。やばい感じです。 このままでは今回の高速起

    Emacsを高速起動せよ #kansaiemacs - Emacs ひきこもり生活
    hirose31
    hirose31 2013/10/30
    なにこれすごい!>CRIU (checkpoint/restore in userspace)というものです。 これはプロセスの状態をディスクにダンプし、そのダンプデータからプロセスを再開するものです
  • カーネル/VM Advent Calendar 一日目: eventfd, timerfd, signalfd - Emacs ひきこもり生活

    ひ、日付? な、なんのことです…!? 最初はfutex()とかカーネルの変更でpostgresqlが遅くなったとかの話をからめようかと思ってたんですがfutex()調べてたらどんどん大きくなってしまったので今回はスキップして(そのうちあるであろう)2回目にまわしとくことに。 ということで、今回はfutex()から似たところ?で、 epoll, kqueue, *fdあたりを簡単にまとめてみようと思います。 select まずはselect()のおさらいを。 こんなふうにサーバにクライアントが5つぶらさがっています。クライアントは常時接続はしていますが、ずっとサーバと通信しているわけではありません。時々サーバにリクエストを投げ、サーバは適宜リクエストに応答します。サーバはsocketを作ってクライアントと通信をしています。 言うまでもないことですが、こんなコードではうまく動きません。 for

    カーネル/VM Advent Calendar 一日目: eventfd, timerfd, signalfd - Emacs ひきこもり生活
    hirose31
    hirose31 2012/12/05
    signalfd, eventfd, timerfd
  • 1