タグ

libuvに関するhiroyukimのブックマーク (5)

  • node.jsを支えるlibuvのチュートリアル"uvbook" :基礎 - 自由課題

    この文書はuvbookの日語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 libuvの基礎 libuvは 非同期、 イベント駆動 のプログラミングスタイルを強制します。 libuvの中心的な機能はイベントループとI/Oと他の活動(activity)の通知をベースにしたコールバックを提供することです。libuvはタイマのようなユーティリティ、ノンブロッキングのネットワークのサポート、非同期のファイルシステムへのアクセス、子プロセス等を提供します。 イベントループ イベント駆動のプログラミングにおいては、アプリケーションは特定のイベントに対する興味を表明し、そのイベントが発生した時にこれらに反応します。OSか他の発生源からイベントを収集する責任はlibuvによって取り扱われ、ユーザはイベントが発生した時に実行されるコールバックを登録することができます。イベント

    node.jsを支えるlibuvのチュートリアル"uvbook" :基礎 - 自由課題
  • 今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog

    ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ

    今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog
  • libuvで消費者ー生産者問題を解く(Condition Variableを使う) - ぼちぼち日記

    1. 最近 libuv の開発が熱い V8と並ぶNode.jsの屋台骨のlibuvですが、最近 libuv 周りの開発が熱いです。 まず libeio が削除され、ファイルI/O は libuv独自のスレッドプールを用いた管理方式に変わりました(unix: remove libeio)。 これまでファイルI/Oは libeio で同時スレッドが4つに限定されてされていましたが、今月末ぐらいに自動的にスレッド数をチューニングするように変える予定らしいです。 これが実装されると多数のファイルを同時に読み書きするような場合の性能がぐんと向上することでしょう。 そしてNodeのイベント管理の丸、 libev の置き換え作業も進められています(unix: remove libev )。 どんな実装になるのか楽しみです。 2. Condition Variable のサポート このようにいろいろ機能

    libuvで消費者ー生産者問題を解く(Condition Variableを使う) - ぼちぼち日記
  • libh2o をビルドする - Qiita

    h2o Advent Calendar の2日目です。 h2o はスタンドアロンの HTTP サーバーだけでなく、 libh2o というライブラリとしてビルドすることもできます。今回は libh2o をビルドして、 hello world サーバーを作るまでやってみます。 環境は Ubuntu と Mac OS X を想定しています。 cmake h2o はビルドシステムに cmake を利用しています。 brew なり apt-get なりで cmake を用意しておきましょう。 他に、後述する libuv のために automake, libtool が必要です。 C++ も入ってなかったら用意しておきましょう。 libuv h2o のスタンドアロン版では libuv 1.0.x への依存が optional なのですが、 libh2o では必須になっているようです(少なくとも僕は l

    libh2o をビルドする - Qiita
  • The reasons I stopped using libuv for H2O

    Libuv is a great cross-platform library that abstracts various types of I/O by using callbacks. So when I started writing H2O - a high-performance HTTP server / library implementation with support for HTTP1, HTTP2 and websocket, using libuv seemed like a good idea. But recently, I have stopped using it for sereval reasons. This blog post explains them. ■No Support for TLS Although libuv provides a

    The reasons I stopped using libuv for H2O
  • 1