«前の日記(2007-08-05) 最新 次の日記(2007-08-07)» 編集

Matzにっき


2007-08-06 [長年日記]

_ [言語] uehajの日記 - Groovyの奇妙な演算子(その1)

Groovyの(Javaにない)演算子について。

「*.」や「.@」についてはどこまでうれしいのかよく分からないけど、 レシーバがnilならnilを返すメソッド呼び出し「?.」や、 メソッドを取り出す「.&」は、ちょっと欲しいと本気で思った。

しかし、よく考えないと「.」が前に来るのか、後に来るのか すぐにわからなくなってしまいそうだ。

_ [言語] Tenjin

LL魂のLightning Talkで発表された Ruby, Perl, Python, PHP, JavaScriptで動作する 高速テンプレートエンジン。

っていうか、DjangoやKidがそんなに遅いとは知らなかった。 ってことは、テンプレートエンジンの性能差というのが 全体のパフォーマンスに与える影響はわずかということなのだろうか。

_ [言語] HAL - CNRS

CによるCPS (Continuation Passing Style) の実装っていうすごく面白そうな内容の論文[PDF]。 まだ読んでない。

YARVのFiberやブロックの高速化とかに使えるんだろうか。 なんとなく難しそうな気がするけど。

_ Dr. Dobb's | Lock-free Interprocess Communication

Lockすることなしにプロセス間通信を行うアルゴリズムについて。

アルゴリズム1,2くらいまではなにを言ってるか分かるんだけど、 コードが断片的すぎて(私の知識が限定的すぎて)、 どのくらいうれしいのか、どのくらい画期的なのか判断できなかった。

プロセス間通信のコストが下がるのであれば、 それに越したことはないのだけれど。

_ [言語] Parallel Python

Pythonにおいて、マルチコアやクラスタを最大限活用しようと言う試み。

大変素晴らしい。で、将来参考にできるものがあれば ぜひ参考にさせてもらおう。

サンプルを見る限り、APIはちょっとわかりにくい気がする。 が、使い方が全然想像もつかないほどではない。

_ Googleは人材を飲み込むブラックホールか − @IT

Googleの中にいれば、幸せだろうということは想像できる。 が、同時に外との断絶も発生しそうだ。

すべての人がGoogleの「中の人」になれない以上、 その幸せは人類の幸せではない。 それでいいのだろうか。

いいのか。

いや、FUDなのは分かってるんだ。 Googleにスポンサーされているオープンソースプロジェクトは沢山あるし、 Googleから公開されているものだってある。

でも、それでもなお私は自分の不安が消せない。

本日のツッコミ(全3件) [ツッコミを入れる]
_ kwatch (2007-08-16 22:22)

> テンプレートエンジンの性能差というのが 全体のパフォーマンスに<br>> 与える影響はわずかということなのだろうか。<br>そういうわけでもなくて、さすがにDjangoやKid(TurboGears)ぐらい遅いと全体の速度に影響します。<br>ただ最近のフレームワークでは、View層は「テンプレートエンジン」+「ヘルパー関数」で構成されているので、View層の速さを考えるなら両方を考慮する必要があります。<br>Ruby on Railsを例にとると、テンプレートエンジンとして使われているERBは、production modeであれば *十分に速い* のですが、h()やlink_to()といったヘルパー関数が遅いので、ここを改善するとアプリケーションが簡単に10%〜20%速くなります。<br>(逆に言うと、View層を改善したところでその程度しか速くならないともいえますが。)

_ むらけん (2007-08-16 23:01)

Lock-free のアルゴリズムは,データの到着をスピンロックで待っているだけにしか見えないですね.スタンダード・アルゴリズムで使ってる Mutex がスピンロック型ではないから,最終ページで大きな時間差が出ているのではないかと想像しました.

_ むらけん (2007-08-16 23:10)

(途中で投稿しちゃったので続き) これまで条件変数+Mutex+フラグで実装していた同期待ちループを,この記事のアルゴリズム2で置き換えたら良さそうですね.

お名前:
E-mail:
コメント:
[]

«前の日記(2007-08-05) 最新 次の日記(2007-08-07)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.