You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
新久保浩二さんのブログの以下のエントリを読んで、自分なりに理解したことをまとめてみた。 小幡さん、yohei-aさん、wmo6hashさんなど、いろいろご意見がありましたが、一度、Oracleの非同期I/Oの実装はどうだったのか再確認が必要だと思いちょっと調べてみます。 手当たり次第やってもしょうがないので、以下の3つの観点で調査してみます。多分、何回かに分けて調査すると思うのですが、今回は初期化パラメータfilesystemio_options = [none|directio|asynch|setall]でどのようにI/Oに関するシステムコールが変化するか見てみます。 10046 trace name context forever: Unbreakable Enterprise Kernelのチューニングは非同期I/Oか? まとめ 初期化パラメータfilesystemio_optio
open(2) System Calls Manual open(2) NAME topopen, openat, creat - open and possibly create a file LIBRARY topStandard C library (libc, -lc) SYNOPSIS top#include <fcntl.h> int open(const char *pathname, int flags, ... /* mode_t mode */ ); int creat(const char *pathname, mode_t mode); int openat(int dirfd, const char *pathname, int flags, ... /* mode_t mode */ ); /* Documente
emacs-w3mでWebブラウジングしてて 「あー、リンク先の動画を、せめて生ファイルぐらいはそのままストリーミングで再生したいなー」 とか思っちゃったのでとりあえず以下のようなコマンド用意した。 (defun w3m-play-movie () (interactive) (let ((url (w3m-anchor))) (if (string-match "^http.*\\.\\(mpg\\|wmv\\|avi\\|flv\\)$" url) (call-process "mplayer" nil nil nil "-fs" url) (message "not movie.")))) (define-key w3m-mode-map "m" 'w3m-play-movie) 非常に単純なので読めばわかると思うけど、 m を叩いた時にカーソルがある位置のリンクのアドレスを見て も
先日の関西Emacsの会で発表しました deferred.el です。 deferred.el はEmacs Lispでの非同期処理を書きやすくするためのライブラリです。 (2010/10/08 追記:コンパイルできないバグがありますので修正中です。コンパイルしなければとりあえず動きます。。。) (2010/10/08 追記:コンパイル出来るようになりました。毎回ミスばっかりですみません。) 入手・ドキュメント 以下のGutHubの日本語ドキュメントの方に一通り書いてみました。 deferred.el 日本語ドキュメント そのうち頑張って英語に直したいと思っています。(手伝ってもらえると助かります><) ドキュメント目次 インストール 使い方例 インタフェース解説 関数 実行・接続 ポイント deferred.el デモ:慣性スクロール ライブラリなのでdeferred.elを単体でインス
Emacsでの非同期処理は大変 これまでEmacsのGUIアプリをいくつか書いてみて、非同期の処理を何とかしたいと思ったことが deferred.el を書こうと思った動機です。 Emacs Lisp上でコマンドを非同期で処理しようと思うと、コールバックをつなげたり、正しくエラー処理を行うために、かなり長いコードを書く必要があります。また、最近はWebにアクセスする機会も多いのですが、これも非同期で処理するとなるとまた面倒です。非同期をやめて、ブロックする(Emacs全体が固まる)コードで書けば楽なのですが、それではユーザー体験としてマイナスになってしまいます。 特に大変だったのが cacoo.el を作っているときでした。 cacoo.el では、以下のような流れで画像を表示します。 Webから画像取得(wget) 画像サイズ取得(identify) 画像リサイズ(convert) 表示
Emacsでの非同期処理は大変 これまでEmacsのGUIアプリをいくつか書いてみて、非同期の処理を何とかしたいと思ったことが deferred.el を書こうと思った動機です。 Emacs Lisp上でコマンドを非同期で処理しようと思うと、コールバックをつなげたり、正しくエラー処理を行うために、かなり長いコードを書く必要があります。また、最近はWebにアクセスする機会も多いのですが、これも非同期で処理するとなるとまた面倒です。非同期をやめて、ブロックする(Emacs全体が固まる)コードで書けば楽なのですが、それではユーザー体験としてマイナスになってしまいます。 特に大変だったのが cacoo.el を作っているときでした。 cacoo.el では、以下のような流れで画像を表示します。 Webから画像取得(wget) 画像サイズ取得(identify) 画像リサイズ(convert) 表示
exec-path という変数がsub-processを立ち上げる場合の検索パスらしい。ので、start-processはexec-passを使って プログラムを探す。start-processはシェルを介さないので、エイリアスは使えない。たとえば、僕の必殺エイリアス(!?) alias e 'env LC_ALL=C XMODIFIERS=@im=none xemacs -geometry 140x90+800+0 &' があっても start-process には理解してもらえない。 (start-process "hoge" "result" "e") ;; ミニバッファに Searching Program ... そんなんありません的メッセージがでる。 逆に start-process-shell-command はエイリアスが利用できる。start-process を star
この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2017年2月) 独自研究が含まれているおそれがあります。(2019年3月) 出典検索?: "非同期IO" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL 非同期I/O (英: asynchronous I/O) とは、入出力の処理を、その要請元のプロセス・スレッドとは独立に(非同期に)行う、入出力のAPIの類型である。 非同期I/Oはほぼ必ず非ブロッキングI/O (non-blocking I/O) であるため、非常にしばしば混同されるが、同期 or 非同期と、ブロッキング or 非ブロッキングという分類は、必ずしも一致しない。POSIX環境
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く