タグ

ブックマーク / kwatch.hatenadiary.org (13)

  • Java屋さんのコメントがレベル高すぎて困る - kなんとかの日記

    Velocity/JSPが遅い件について、Java屋さんからびっくりするようなコメントをもらった。 最初のコメントは、よく意味がわからなかった。 はなこ 2010/06/04 14:37 JSP 勘違いしてない? JSP を初めて読み込むと、開発サーバーによって Java ソース コードに変換され、その Java ソースが Java バイトコードにコンパイルされます。Java ソースとコンパイル済みのクラスは、一時ディレクトリに保存されます。元の JSP ファイルに変更を加えると、JSP が自動的に再生成されてコンパイルされます。 JSP の使用 - Google App Engine - Google Code http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/usingjsps.html JSPが遅い理由

    Java屋さんのコメントがレベル高すぎて困る - kなんとかの日記
    Watson
    Watson 2010/06/12
  • JSPが遅い理由をJava屋さんはまるでわかってないらしい - kなんとかの日記

    なんかVelocityもJSPもスクリプト言語より遅いという事実は、Java屋さんはあんまり知らなかったみたいだね。しかも、遅い原因の考察が的外ればかりで笑ってしまう。 「Javaの文字列操作は遅いから」とか「UTF-16の変換に時間がかかるから」とか、そんなのまるで関係ないですから。Javaの文字列操作は十分速いし、UTF-16の変換も主要因ではない。 #つうかさ、「Javaの文字列操作は遅い」とか、Javaに対して失礼だろ。 VeocityやJSPが遅いのは、単に動的な独自言語を導入したから。はっきりいって、これはアーキテクチャ上の間違った選択。せっかくJavaが静的であるのにその特性を利用せず、わざわざ動的言語を導入しているのだから、何考えてんだろうと思う。いつもJava屋さんが主張しているような、「コンパイル時にエラーを発見できる」「IDEでの補完が効きやすい」「リファクタリングが

    JSPが遅い理由をJava屋さんはまるでわかってないらしい - kなんとかの日記
    Watson
    Watson 2010/06/03
  • Rubinius 1.0.0 が速すぎてびっくりした - kなんとかの日記

    (追記: Rubiniusとは、Ruby自身で書かれたRubyの処理系。Javaで書かれているJRubyとともに、期待を集めているRuby処理系のひとつ。) そもそもこのブログは Rubinius で遊んだ結果を紹介するために始めたようなものだったのに、せっかく Rubinius 1.0.0 がリリースされたのにスルーしてた (ごめんよ Evan)。 ようやく Rubinius をインストールしてベンチマークをとったので、衝撃的な結果とともに紹介する。 インストール インストールは簡単。Web サイトからダウンロードし、コンパイルするだけ。Mac OS X ならバイナリも用意されているけど、今回は使用せず、自分でコンパイル&インストール。なおコンパイルには Rake を使うので、Rubinius をコンパイルするには Ruby が必要。 ### Mac OS X 10.6 で実験 $ wg

    Rubinius 1.0.0 が速すぎてびっくりした - kなんとかの日記
  • プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記

    まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。 これを見れば、最速な言語は C/C++ であり、Java や Haskell や OCaml といった静的な言語は軒並み上位に登場する。これに対し、RubyPythonPHP といったスクリプトは全部下のほう (つまり遅い)。その速度差は非常に大きく、このベンチマークで見ると Python3 や Ruby1.9 は C/C++ の約50倍から60倍遅く、Perl は約90倍、PHP にいたっては約130倍遅いことになる。 (ちなみに JIT つきの Lua が驚異的に高速なのが目をひく。この結果が当だとしたら、言語の速度に大きく関係するのは動的か静的かではなく、どれ

    プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記
  • スクリプト言語の息の根を止めるのは案外 SSD かもな - kwatchの日記

    大変たいへん興味深い記事。全プログラマーにとって。 HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました ...(snip)... HDDは200スレッドで性能が頭打ちなのに対し、SSDは200スレッドから300スレッドになってもまだ性能は上昇。ただし、300スレッド時にはCPU利用率が100%に近づいており、先にCPU性能の方がボトルネックとなってしまったようです。 HDDをSSDにしたらデータベースはどれだけ速くなるか? オラクルと富士通が実験 - Publickey 動的なスクリプト言語 (RubyPython など) と静的なコンパイル型言語 (C++Java など) では、だいたい 5 倍から 10 倍ぐらいの速度差がある。それでもスクリ

    スクリプト言語の息の根を止めるのは案外 SSD かもな - kwatchの日記
  • Ruby の落とし穴: 実は and と or の優先順位が一緒 - kなんとかの日記

    こんなん今の今まで知らんかったわ。 irb> true || true && false #=> true irb> true or true and false #=> false irb> true || false && false #=> true irb> true or false and false #=> falseまじですかー! 何やねん、これ。 マニュアル見ると、and と or の優先順位が一緒だった。つまり '&&' > '||' なのに 'and' == 'or' ですよ。 これに基づくと、上のはこう解釈されていることになる。 irb> true || (true && false) #=> true irb> (true or true) and false #=> false irb> true || (false && false) #=> true irb

    Ruby の落とし穴: 実は and と or の優先順位が一緒 - kなんとかの日記
    Watson
    Watson 2010/04/12
  • RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記

    PHPerがRubyを触り始めて最初に不機嫌になるのは、空文字列が偽ではないことだ。つまり、PHPなら「if ($var)」で済むのが、Rubyだと「if !var.empty?」と書かなければならない。これでPHPerは不機嫌になる (まあ気持ちは分かる)。 if ($var) ... # PHP if !var.empty? ... # Rubyそれだけならいい。もし値がnilである可能性があるなら、Rubyでは「if var && !var.empty?」と書かなければいけない。この時点でPHPerは不機嫌どころかブチ切れる。なんでこんなに書かなきゃいけないんだ!? PHPなら「if ($var)」で済むのに!! SHIIIIT!! if ($var) ... # PHP if var && !var.empty? ... # Rubyここで、「空文字列が偽になるような言語仕様こそク

    RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記
  • pure Ruby な C コンパイラがあったらいいな - kなんとかの日記

    自作の拡張ライブラリを作ったのはいいけど、Windows 用バイナリを作ろうとして行き詰まる。Windows ではどうやってコンパイルすればいいのかわかんないし、そもそも WindowsRuby からして種類がいくつかあって、どれをターゲットにしたらいいのかもわかんない。 で思ったのだが、どうせなら pure Ruby な C コンパイラがあれば、こんなことで悩まなくて済むんじゃなかろうか。そいつで Windows 用の拡張ライブラリどころか、Ruby 体もコンパイルできれば、なんだかすごい世界が広がるように思う。ちょうど、C をなるべく排除しようとしてる Rubinius とまったく逆のアプローチ。 C のコンパイラを Ruby で作る場合、フロントエンドはまだいいとして、バックエンドが問題だよな。Pure Ruby なアセンブラを作らなきゃいけないけど、アセンブラよく知らんし。

    pure Ruby な C コンパイラがあったらいいな - kなんとかの日記
    Watson
    Watson 2010/01/13
  • PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記

    PHPerの問題点はPHPしか知らずに的外れなことを言うことだ」と、Javaしか知らなくて的外れなことを言っている連中にすら言われちゃってるPHPerのみなさん、こんにちは。 PHPは「使える道具」であることは事実です。しかし同時に言語仕様がウンコなのも事実。 ここでは、個人的にウンコだと思っているPHPの仕様を挙げてみたよ! htmlspecialchars() の名前が長すぎる これはほんとウンコ。おまえWebアプリのための言語やろが!なんでこの関数の名前がこんなに長いねん!こんだけ長かったらめんどくさがって echo $var としてまうやろが!WordPressのthemeでHTMLエスケープ忘れが多いのはおまえの名前が長すぎるせいだ! そんなわけで、全PHPerはこんな関数を定義するといいと思うよ。 ## echo $var; よりも短く h($var); と書ける! func

    PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記
    Watson
    Watson 2009/11/29
  • YAML 1.2 仕様書リリース - kなんとかの日記

    YAML 1.2 の仕様書が正式公開されました。 YAMLメーリングリストに流れたClark C. Evansのメールに、今回の変更点が紹介されてました。それによると、今回の目玉はずばり「JSONの仕様を取り込む」ことです。つまり、YAML1.2からはYAMLはJSONの完全なスーパーセットということになります。 今までもYAMLパーサをJSONパーサのかわりに使うことはできたのですが、実はYAMLとJSONとで細かい差異があったため(特に「:」と「,」の直後の空白の有無)、YAMLパーサがすべてのJSONファイルをパースできたわけではありません。しかし今回の仕様変更で、YAMLパーサはすべてのJSONファイルを正しくパースできるようになりました。 The primary objective of the 1.2 revision of this specification is to b

    YAML 1.2 仕様書リリース - kなんとかの日記
    Watson
    Watson 2009/07/27
  • DRY (Don't Repeat Yoursel) の意味を勘違いしてたかも - kなんとかの日記

    なんか、DRY の原則をすっげー勘違いしてたかも。 The DRY (Don't Repeat Yourself) Principle states: Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. http://c2.com/cgi/wiki?DontRepeatYourself DRY (Don't Repeat Yourself) っていうから、単に「同じことを繰り返さない」という意味だと思っていた。だから、たとえば class Node end class Element < Node def accept(visitor) visitor.visit_element(self) end end class Text < N

    DRY (Don't Repeat Yoursel) の意味を勘違いしてたかも - kなんとかの日記
  • MacPorts でインストールした Ruby は遅いらしい - kなんとかの日記

    Ruby のメーリングリストで出た話題。 MacPorts でインストールした Ruby は遅いらしい。 というわけで、MacOS X 10.5 Leopard で確かめてみた。 $ /usr/bin/ruby -v # MacOS X 付属 ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0] $ /usr/local/bin/ruby -v # 自前でコンパイル&インストール ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.4.0] $ /opt/local/bin/ruby -v # MacPorts でインストール ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9]まずは fibonacci で確かめてみる

    MacPorts でインストールした Ruby は遅いらしい - kなんとかの日記
  • ついに Ruby の正式な仕様が登場するかも - kなんとかの日記

    第 1 回 Ruby 設計ミーティングのメモが公開された。 Unwinding the stack: First Ruby design meeting notes これによると、Rubinius が主導して作った RubySpec が、Ruby の正式な仕様およびテストスイートとなりそう。パチパチ。 RubySpec は、RSpec のサブセットに独自の改良を施した MSpec (たぶん mini spec の意味) で記述されている。実装間の差異を吸収できるような仕掛けがあって、たとえば MRI では動くけど JRuby では動かない機能があったとき、そういうことを記述できるようになっている。 今のところ、RubySpec は標準ライブラリのカバー率が低いけど、MRI でも RubySpec を使うようになれば、標準ライブラリのカバー率はぐんと上がると期待される。 ついに、Ruby

    ついに Ruby の正式な仕様が登場するかも - kなんとかの日記
    Watson
    Watson 2008/04/29
  • 1