問題タブ [criterion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1075 参照

c - Haskell と C のランタイムを確実に比較するには?

Criterion ライブラリを使用して、Haskell 関数のベンチマークを作成しました。現在、Haskell とパフォーマンスを比較するために C で同じアルゴリズムを実装しています。問題は、どうすれば確実に行うことができるかです。Criterion は、クロック呼び出しのオーバーヘッドを考慮したり、結果の統計分析を行ったりするなど、多くの凝った処理を行います。C 関数に必要な時間を測定するだけでは、Criterion によって返される結果と比較できないと思います。Criterion に関する彼の最初の投稿で、 Bryan O'Sullivan は次のように書いています。問題はどのようにですか?村主隆之氏による DFT の C 実装の比較スレッドを生成して実行可能ファイルを呼び出すことでHaskellを使用していますが、これにより多くの追加のオーバーヘッド(新しいスレッドの作成、アプリケーションの実行、stdioへの出力、およびそれからの読み取り)が追加され、結果が比類のないものになるのではないかと心配しています. FFI を使用することも検討しましたが、追加のオーバーヘッドによってこのような比較が不公平になるのではないかと懸念しています。

Criterion を使用して C を確実にベンチマークする方法がない場合、C ベンチマークへのどのアプローチをお勧めしますか? ここで SO に関するいくつかの質問を読みましたが、システム時間を測定できるさまざまな機能があるようですが、ミリ秒単位で時間を提供するか、呼び出しのオーバーヘッドが大きくなります。

0 投票する
1 に答える
335 参照

scala - Scala基準と同等

基準に相当するScala(またはJavaだと思います)はありますか?ベンチマーク ライブラリについて話しているだけではありません。HTML の結果に対してどのような基準が機能するかを確認してください。

0 投票する
1 に答える
249 参照

performance - 貯水池サンプリングのパフォーマンスとリストの長さの取得およびランダム要素の選択

未知の長さのリストからランダムな要素を選択するための2つの関数を作成しました。1つ目は(サイズ1のリザーバーを使用した)リザーバーサンプリングを使用し、2つ目はリストの長さを取得してランダムなインデックスを選択して返します。何らかの理由で、前者の方がはるかに高速です。

最初の関数は、単一の走査を使用し、確率(1 / i)で各要素を選択します。ここで、iはリスト内の要素のインデックスです。その結果、各要素を選択する確率は等しくなります。

2番目のバージョンは、リストを1回トラバースしてその長さを取得し、次に0と入力リストの長さ(-1)の間のインデックスを選択して、要素の1つを同じ確率で取得します。リスト1.5の予想されるトラバーサル数:

これら2つの関数のベンチマークに使用するコードは次のとおりです。

削除された出力は次のとおりです。

言い換えると、最初の関数は2番目の関数よりも約200倍高速です。ランタイムは、主に乱数の生成とリストトラバーサルの数(1対1.5)の影響を受けると予想しました。このような大きな違いを説明できる他の要因は何ですか?

0 投票する
1 に答える
315 参照

haskell - さまざまなサイズの入力に対して Haskell ベンチマークを実行する

同じ関数の複数の実装の実行時のパフォーマンスを比較したいことがよくあります。個々の入力の場合、基準は優れたツールです。

しかし、たとえばアルゴリズムの複雑さを確認するために、さまざまな入力サイズでコードのパフォーマンスをプロットする簡単な方法は何ですか?

理想的には、ライブラリに type の値Benchmarkable r => [(String, Int -> r)]、つまりサイズに依存するベンチマークのリストを渡すと、ライブラリは自動的に各値の適切な入力範囲を見つけ、そこから適切なプロットを作成します。

0 投票する
1 に答える
18300 参照

hibernate - org.hibernate.QueryException - プロパティを解決できませんでした

Hibernate を使用してデータベースに接続しようとしています。

この現在のテーブルのレイアウトは次のとおりです。

ここで、field1、field2、field3 はすべて外部キーであり、一緒になって複合キーを構成します。

私は次のクラスを持っています:

これに付随するもの:

次のエラーが表示されます。

org.hibernate.QueryException - プロパティを解決できませんでした: field3 の: org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67) の path.MainRecord

これが私のボー/ダオコードです

0 投票する
2 に答える
349 参照

haskell - 基準でベンチマークを初期化し、初期化時間を結果から除外する

内のいくつかのコードをベンチマークする必要がありIO、基準はそれをかなりうまくサポートしています。しかし、いくつかの初期化手順を実行したいと考えています (ベンチマークごとに異なります)。単純なアプローチ:

ただし、ベンチマークの実行ごとに初期化とクリーンアップを実行し (デフォルトでは 100 回)、最終結果までの初期化時間を含みます。初期化時間を除外することはできますか?

追加: コードはグローバル状態 (実際には mongodb) を使用するため、2 つの初期状態を同時に準備することはできません。