y_uti のブログ

統計、機械学習、自然言語処理などに興味を持つエンジニアの技術ブログです

2013-12-01から1ヶ月間の記事一覧

SplDoublyLinkedList を LIFO で使うときの注意点

前回の記事の最後に書いたように、PHP の SplDoublyLinkedList を LIFO で使う場合には、いくつか注意しなければいけない挙動があります。一つ目は、イテレータのキーについてです。まずは FIFO の場合について、以下のようなコードで確認してみます。各要素…

SplDoublyLinkedList を利用したリスト操作

このエントリの内容が興味深かったので、PHP で SplDoublyLinkedList を使って書いてみました。 Python - すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita [キータ] PHPでは配列ではなくオブジェクトに状態を持たせよ - なんたらノート第三期ベー…

Particle filter のリサンプリング方法の比較

Particle filter のリサンプリング方法を比較した下記の論文を読んでみました。そこで、論文中で比較されていた各手法を PHP で実装して試してみたいと思います。 Randal Douc, Olivier Cappé, and Eric Moulines. Comparison of resampling schemes for par…

各言語でのバイトコード命令表示方法

普段あまり使うことのない言語も含めていくつか調べてみたので、備忘録として。Perl $ perl -MO=Concise hello.pl 6 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 3 hello.pl:6) v:*,&,{,$ ->3 5 <@> print vK ->6 3 <0> pushma…

paizaオンラインハッカソンVol.1に挑戦

ここ何回か PHP の最適化について書いていますが、実はこの企画にチャレンジしています。 新人女子プログラマの書いたコードを直すだけの簡単なお仕事です!|paizaオンラインハッカソンVol.1以下、提出したコードを掲載しています。自力でチャレンジしてい…

PHP プログラムの最適化あれこれ

先日から PHP のコードの性能について記事を書いていますが、今回もそういった内容です。まず、ループカウンタの操作についてです。 以下のようなコードを考えます。計測用のプログラムなので計算に意味はありません。

データを正しい型で扱うことによる高速化

PHP のようなスクリプト言語では型を意識せずにコードを書いてしまいがちですが、適切な型を付けることで処理速度を大きく改善できる場合があります。そりゃあそうだろうという話なのですが、実際に計測してみると予想以上に大きな効果があって驚きました。…

PHP の配列の局所性

PHP で、整列済み配列を走査する処理を書いていたところ、メモリアクセスの局所性によると思われる速度低下が見られて面白かったので、記事にしてみます。例として配列の総和を計算するコードを考えます。