タグ

hashに関するlesamoureusesのブックマーク (7)

  • JavaScriptのswitch文の速度評価記事への補足 - 風と宇宙とプログラム

    前回書いたエントリー「JavaScriptswitch文の速度はブラウザの違いでこんなにも差があった。」に予想外にたくさんのブックマークがつき、貴重なコメントも頂きありがとうございます。それにインスパイアーされたので、ちょっと補足を書きました。個々の項目はブコメにヒントを得ましたが直接対応するものではありません。 どうしてこんなパフォーマンステストをしたの? switch文のパフォーマンスを測定する動機になったのは、あるコードを読んでいたら、多量のswitch文があり、しかも、caseの数も多い。非常に見通しが悪い上に、これじゃ遅いだろうなと直感的に思いました。でも、ふと、switch文のcaseが定数なら分岐は高速に実行するようにコンパイルされるのではないか?JavaScriptswitchはif-elseの並びと意味的には類似だけれど、caseが定数に限定されるなら、caseが多い

    JavaScriptのswitch文の速度評価記事への補足 - 風と宇宙とプログラム
    lesamoureuses
    lesamoureuses 2010/03/02
    なるほど>パフォーマンスが重要でキーが定数のときはswitch文を使うより、ハッシュマップを使った方が遙かに効率が良いということですね。
  • 効率的な変数宣言

    my %hash=();よりmy %hash;の方が効率的です。 どのぐらい効率的かというと: $ perl -MO=Concise -e 'my %hash=()' 7 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 6 <2> aassign[t2] vKS ->7 - <1> ex-list lK ->4 3 <0> pushmark s ->4 - <0> stub lP ->- - <1> ex-list lK ->6 4 <0> pushmark s ->5 5 <0> padhv[%hash:1,2] lRM*/LVINTRO ->6 $ perl -MO=Concise,-exec -e 'my %hash=()' 1 <0> enter 2 <;> n

  • perl - 勝手に添削 - Lingua::JA::Summerize 0.02 : 404 Blog Not Found

    2006年04月28日15:30 カテゴリLightweight Languages perl - 勝手に添削 - Lingua::JA::Summerize 0.02 突然ですが、勝手に添削の時間です。 Perl Best Practices Damian Conway 今回は、 Kazuho@Cybozu Labs: Lingua::JA::Summarize 0.02です。 まずは、Editorで開いてみないと見づらいところ。 インデントにtab("\t" ; "\x09")を使うのはやめましょう。tabは必ずspace("\x20")に拡張しましょう。 タブストップの数は、環境によって異なります。にも関わらず違うように表示されるのはさけなければなりません。perlではこれは致命的ではありませんが、pythonやhaskellでは致命的ですし、Perl内部でも手でYAMLなどを書いて

    perl - 勝手に添削 - Lingua::JA::Summerize 0.02 : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/06/19
    ハッシュはまとめて
  • 404 Blog Not Found:アルゴリズム百選 - ハッシュを再発明する

    2007年12月03日11:15 カテゴリアルゴリズム百選 アルゴリズム百選 - ハッシュを再発明する (実はハッシュを使って)配列を再発明したところで、今度は配列を使ってハッシュを再発明してみます。 現代におけるプログラミングでは、連想配列(associative array)というものを非常によく使います。通常の配列では、データを取り出すのに整数の番号を使いますが、連想配列ではその代わりに文字列を使います。これは非常に便利で、多くの言語ではオブジェクトの実装にこの連想配列を用いています。JavaScriptのオブジェクトも実は連想配列です。 しかし、これを実装するには、少し工夫が必要です。単なる配列であれば、ただ等間隔に並べておけば、「何番目を出してくれ」で事足りますが、連想配列で「'dankogai'番目」といっても人間にもコンピューターにもなんのことかさっぱりわかりません。 誰でも

    404 Blog Not Found:アルゴリズム百選 - ハッシュを再発明する
    lesamoureuses
    lesamoureuses 2007/12/03
    へぇ。ハッシュってこうやって作るのか。
  • 502 Bad Gateway

    502 Bad Gateway nginx

    lesamoureuses
    lesamoureuses 2007/11/01
    IE6がこんなに遅いことにビックリ>normal sort 1432 ms
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
    lesamoureuses
    lesamoureuses 2007/10/31
    htmlタグのエスケープは文字クラスとhashでやるのがいい
  • perl - 木を痛めない枝チェック : 404 Blog Not Found

    2007年10月12日00:00 カテゴリLightweight Languages perl - 木を痛めない枝チェック 確かにこれは悩ましい。 [を] Perl の defined と exists それはそうと、やっかいなのが、ハッシュでツリーを扱うとき。 一度でも $a->{"a"}->{"b"} を見に行くと、 $a->{"a"} が存在するようになっちゃうんですよね。 確認するためにアクセスしただけなのに、 途中ノードができちゃうなんてちょっとなあ…。 念のために解説すると、こういうことです。 use strict; use warnings; use Data::Dumper; my $a = {}; # 空っぽのはずが print Dumper($a); print exists $a->{b}{c}; # { b => {} } となっちゃう print Dumper($

    perl - 木を痛めない枝チェック : 404 Blog Not Found
  • 1