タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

performanceとalgorithmに関するHHRのブックマーク (2)

  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • フィボナッチで各種言語をベンチマーク - satosystemsの日記

    AWK、Ada、Bash、Boo、C、C#、C++、Clojure、D、Erlang、Forth、Fortran、Go、Groovy、Haskell、Io、JavaJavaScript、Lisp、Lua、OCaml、Objective-C、PHP、Pascal、Perl、Pike、PrologPython、R、RubyScala、Scheme、Smalltalk、Tcl でフィボナッチ数を求める処理時間を計測してみました。 フィボナッチ数は漸化式で求められます。 F0 = 0 F1 = 1 Fn+2 = Fn+1 + Fn フィボナッチ数を求めるアルゴリズムはいろいろありますが、今回は以下の再帰で求めるアルゴリズムで統一しました。 #include <stdio.h> int fib(int n) { if (n < 2) return n; return fib(n - 2) +

    フィボナッチで各種言語をベンチマーク - satosystemsの日記
  • 1