Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。前回のプログラムで、より大きなデータ量を指定して実行すると、epoll(2)のエッジトリガプログラムはアボートします。failed.アボートしましたepoll(2)のエッジトリガでは、ディスクリプタを通しての受信/送信でEAGAINが帰ってきた時、すべてのデータを受信/送信が行われたのか不定です。少ないデータ量では一回の受信/送信で問題ありませんが、データ量が多い時はすべてのデータが処理できたかを確認する必要があり、そのチェックはアプリケーション側で責任を持たなくてはいけません。各ディスクリプタに対し受信/送信を行うデータを自前のデータ領域に一時確保する仕組みを用意する必要があります。それを踏まえた性能測定を行う場合、エッジトリガだけがその煩雑な処理を行うと性能差に違いが出ることは明白。今回は同機能をepollのレベルトリガおよびpollのプログラムでも同様に実装し測定します。プログラムは200行を超えているため、ダウンロードして参照してください。スレッドからデータの送受信を繰り返すので、スレッド切替などの時間が加わり、実際の処理時間とは異なる可能性が高いですが、傾向くらいはつかめると思います。検証数値は、コネクション数を10,000、処理回数を100回、データ量を102,400バイトとしました。その時の傾向を見ます。102400計測結果は下記の通りです。図5今回も、コネクションの時と同様、epollの性能がpollに比べて優れているようです。傾向として、epollのエッジトリガが若干優れているようです。エイト(エイト)(株)DTSに勤てます。WebアプリやJavaやLL等の上位アプリ環境を密かに憧れつつも、ず~っとLinuxとかHP-UXばかり、ここ数年はカーネル以上アプリ未満のあたりを行ったり来たりしています。mixiもやってまして、こちらは子育てとか日々の日記メインです。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。