«前の日記(2007年09月14日) 最新 次の日記(2007年09月16日)» 編集

Matzにっき


2007年09月15日 [長年日記]

_ [Ruby] Rubyのダイエット (PDF)

akrさんのLinux Conferenceでの発表スライド。 如何に1.9で(akrさん主導で)ダイエットが行われたか、の記録。

akrさんのおかげで、1.9では以下のようなメモリ削減が行われた。

  • 3要素までのStructのインライン化
  • 11byteまでのStringのインライン化
  • インスタンス変数5つまでのObjectのインライン化
  • 空Hashのインライン化
  • ±296-1までのBignumのインライン化
  • Rangeのインライン化
  • 3要素までのHashのインライン化

私自身のダイエットもこれくらい進んでほしいものだ。

スライド前半のRubyのオブジェクト構成の説明も (Rubyの中身に興味がある人には)有益な解説だろう。

_ [Ruby] Scaling Twitter: Making Twitter 10000 Percent Faster | High Scalability

Twitterのスケーラビリティに関する情報まとめ。

Twitterの瞬間最大11,000アクセスというのはおおげさに伝えられているが、 平均毎秒600アクセスというのも興味深い情報。 これは楽天の個別サービスのアクセスよりも多い。

また、それを実現したテクニックなどについてもまとめられている。

_ [言語] Smalltalk Industry Council

「STIC is the vendor neutral Smalltalk lobby organization」なのだそうだ。 今まで無かったのが不思議なくらい。

2008年6月18-21日にSmalltalk Solution 2008というカンファレンスも開催するそうだ。

Rubyアソシエーションもちゃんと仕事しなくちゃなあ。 やりたいことは沢山だが、できることは限られている。

とりあえずロゴコンテストの応募は沢山集まってるけど。

_ [言語] Neil’s point-free blog >> Statically Checked “Duck Typing” in Scala

Scalaのstructural conformanceについて

def test(f: { def getName(): String }) { println(f.getName) }

と書けば、testメソッドはgetNameというメソッドを持つ任意のオブジェクトを (DuckTyping的に)引数にとりつつ、静的な型チェックも行える、という話。

もう一歩進んで

def test(f) { println(f.getName) }

だけで、

  • f.getNameを呼んでいるからfにはgetNameが必要
  • printlnの引数になっているからgetNameの戻り値は文字列

とかまで推論できるとかなりうれしいのだが、 いくら型推論言語でもシステム全体をそれで通すわけには行かないだろうなあ。

_ [言語] 並列パフォーマンス: マルチコア コンピュータ用にマネージ コードを最適化する -- MSDN Magazine, October 2007

C#における並列パフォーマンス実現機能。 C#から離れて純粋にAPIとして見ても興味深い。


«前の日記(2007年09月14日) 最新 次の日記(2007年09月16日)» 編集