0

初めての D プロジェクトについてアドバイスが必要です。私はそれをアップロードしました:-

https://bitbucket.org/mrjohns/matcher/downloads

IDEA : 3 つのランタイム アルゴリズムのベンチマークと、それらのコンパイル時のバリアントとの比較。これらの唯一の違いは、コンパイル時にルックアップ テーブル (つまり、配列 bmBc、bmGs、およびサフィックス) をコンパイル時に計算する必要があることです (私は現在 CTFE に依存しています)。一方、実行時のものの場合、ルックアップ テーブルは実行時に計算されます。

NB : パターン マッチング アルゴリズム自体はコンパイル時に実行する必要はなく、ルックアップ テーブルのみを実行する必要があります。これを述べた上で、既知の (コンパイル時に計算された) テーブルで実行されるアルゴリズムは、実行時に計算する必要があるものよりも高速でなければなりません。 .

私の結果は何か違うことを示しているようです。最初のペア (BM_Runtime と BM_Compile-time) のみが許容可能な結果を​​もたらし、他の 2 つのペアはコンパイル時のバリアントの実行時間を長くします。ここに何かが欠けていると思います。助けてください。

pattern="GCAGAGAG" の現在の結果は以下のとおりです:-

**BM_Runtime**          = 366 hnsecs     position=   513

**BM_Compile-time**     = 294 hnsecs     position   =513

**BMH_Runtime**         = 174 hnsecs     position=   513

**BMH_Compile-time**    = 261 hnsecs     position=   513

**AG_Run-time**         = 258 hnsecs    position=   513

**AG_Compile-time**     = 268 hnsecs    position=   513

コードの実行: dmd -J. matcher.d input.d rtime_pre.d ctime_pre.d && numactl --physcpubind=0 ./matcher

ご提案いただければ幸いです。

よろしくお願いします。

4

1 に答える 1