問題タブ [dacapo]
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.
file - ネストされたフォルダー構造から親フォルダーにファイルを再帰的に抽出する方法
psp(レベル0)というディレクトリにたくさんのフォルダ(レベル1)があり、それぞれに2つまたは3つのフォルダ(レベル4)が含まれています。いくつかの.pseudoファイル(これらは単なるテキストファイルです)が含まれています。および.tar.gzファイル。
私が実行したいプログラム(dacapo)は、pspディレクトリにそれらの.pseudoファイルをすべて持っている必要があります。
したがって、どういうわけかすべての.pseudoファイルをそのディレクトリに入れる必要があります。
ファイル構造全体が.tar.gzファイルとして始まったことに注意する必要があります。あなたはここでそれを見つけることができます:http ://wiki.fysik.dtu.dk/dacapo-files/campos-dacapo-pseudopotentials-1.tar.gz
aop - 同じ側面を複数の壷に織り込む
このプロジェクトを AspectJ (ajc) で正しく織り上げるのに問題がありました。状況は次のとおりです。
私は DaCapo Benchmarks というベンチマーク ライブラリを使用しており、その中で Iterator.HasNext() および Next() へのすべての呼び出しをインターセプトしようとしています [学術研究]。これは真空で動作しているように見えますが、DaCapo は、独自の jar に他の jar が含まれ、依存関係と共に実行したいベンチマークに従って抽出して実行するように動作します。
すべての HasNext() と Next() を同じ側面で傍受したいので、個々の jar ファイルではなく、すべての jar ファイルで合計が追跡されます。
私が十分に明確に出くわしていることを願っています。この奇妙な問題を解決するために、ご質問があればいつでもお答えします。
PS実際には実行できないという奇妙な感じがありますが、AJDTを使用したEclipseでのテスト(DaCapo Benchmarksの織り方にajcを使用して生のaspectjを使用しています)は、可能性を示唆しています.
cobertura - Cobertura を使用してベンチマーク Dacapo のカバレッジをテストする方法は?
最近、私は新しいベンチマーク Dacapo を使用していました (ここに Web サイトがあります: http://dacapobench.org/)。
私の先生は、Cobertura を使用して Dacapo の 11 のベンチマークのブランチ カバレッジをテストするように言いました。その間、私はコベルチュラを学んでいました。Cobertura が .class ファイルを計測し、それらを実行してレポートを取得することがわかりました。Dacapo は .jar ファイルですが、その中に多くのファイルが結合されています。Cobertura でそれらをテストする方法がわかりません。
有益なアドバイスをいただければ幸いです。ありがとう!
java - Java は、CentOS の最小インストールでは非常に遅く実行されますが、通常のインストールでは高速です
CentOS 6.2 を使用すると、これらのインストールは両方とも同じサーバー上にあります。
「最小限」のインストールを行った後、Java プログラムの実行速度が非常に遅くなります。「ソフトウェア開発ワークステーション」のインストールを行った後、Java プログラムは通常の速度で実行されます。
これまでに収集された情報:
最小インストールに含まれていないサービスを有効にし
irqbalance
ても効果cpuspeed
がありませんPhoronixスイートを使用してベンチマークを実行し、CPU/RAM/HD の速度をテストしました。これらのテストはすべて、両方のインストールで正常に実行されます。
DaCapoスイート (Java にある) を使用してベンチマークを実行しました。これらのテストはすべて、最小限のインストールではひどく実行されます(つまり、5 倍から 50 倍遅くなります)。
JRE の複数のバージョンを試した: OpenJDK 6、Sun Java 6、Sun Java 7
yum を使用して最新のパッケージに更新しました
この速度低下を 2 つの異なるサーバーで複数回確認しました。
どちらのサーバーも Xeon デュアル コア プロセッサを使用し、16GB 以上の RAM を搭載しています。
誰がこれを引き起こす可能性があるか考えていますか?
bash - Unix time コマンドは実行中のプログラムに干渉できますか?
Time Unixコマンドに関するこの回答から、時間がどのように機能するかについての基本的なアイデアが得られます。新しいプロセスをフォークし、その新しいプロセスでコマンドを実行します。ただし、理解できない動作に遭遇しました。
DaCapo ベンチマーク スイートのベンチマークであるlusearchのプロファイルを作成しようとしています。さまざまな構成 (スレッド数と反復回数) で起動し、ベンチマーク出力を無視して、時間を使用して実際のユーザー時間とシステム時間を記録したいと考えています。ほとんどの構成で、私のスクリプトは問題なく動作し、ベンチマークを起動して時間を記録します。
1 つの特定の構成 (大規模なデータセット、2 つのスレッド、10 回の反復) では、ベンチマークが終了しないことがあります (約 100 の暫定的なケースのうち 80%)。これは私がそれを起動するために使用しているコマンドです:
ただし、時間を前に追加しないと、ベンチマークは 100% の時間で終了します (約 100 の暫定的なものでも):
この動作は、このベンチマーク (およびこの構成) でのみ発生しますが、他のベンチマークをプロファイリングするか、別の数のスレッドまたは別の数の反復を使用すると、同じことが起こっていることがわかりません。私の推測では、それはベンチマークに干渉する何かが行われていることに関係していると思います。
fork+exec がベンチマークの動作をどのように変更できるかわかりません。これを引き起こす可能性のある特定のものはありますか?たとえば、ベンチマークも使用したいリソースを使用している時間はありますか? ベンチマークの起動中に何か問題がありますか?
windows - Windows バッチ スクリプト: すべての出力をファイルにリダイレクトする
さまざまな Java ベンチマークを実行しており、結果をアーカイブしたいと考えています。(dacapo) ベンチマークを次のように実行します。
ベンチマークのタイプをパラメータで渡します。それが %arg1% です。
出力をテキストファイルにリダイレクトしていることがわかります。残念ながら、出力の最初と最後の行はまだコンソールに出力されており、テキスト ファイルには出力されていません。
特に最後の行は、テキスト ファイルに含めることが重要です:)
この動作を強制するトリックはありますか?
java - BCEL を使用して既存のメソッドにコードを挿入する
私の論文研究では、ソースを持っていないテスト スイート (この場合は DaCapo ベンチマーク スイートhttp://dacapobench.org/ ) の定義可能なメソッドにコードを挿入する必要があります。私の論文のこの部分が基づいている以前の研究では、これにバイトコード インジェクションを使用していたため、私もこれを行うようになりました。
Apache の BCEL ライブラリ ( http://commons.apache.org/proper/commons-bcel/ ) を使用して、他のステートメントの前にメソッド本体にフィボナッチ アルゴリズムを挿入できる小さなプログラムを作成しました。
今、これを作ったのですが、うまく動きません。私が注入したいくつかのメソッドは正常に動作し (フィボナッチ コードのために遅いため)、DaCapo フレームワークの実行はうまく機能しますが、他の注入されたメソッドはコードを壊します。
問題は、理由がわからないことです。どのメソッドが失敗し、どのメソッドが成功したかはわかっていますが、壊れたメソッドの繰り返しパターンを見つけることができません。
- バイトコードは問題ないようです。これまでのところ、私は見ることができますが、専門家にはほど遠いです。インジェクションの前後のバイトコードを比較すると、フィボナッチ アルゴリズムの後に残りのメソッドが続くことがわかります。唯一の違いは、スタック位置が増加したことです (インジェクトされたコードはスタック スペースも使用するため)。
- 成功したメソッドには、パブリック メソッドとプライベート メソッドが含まれていました。パラメータありとパラメータなし。
- 失敗したメソッドには例外が含まれるものもあれば、含まれないものもあります。キャッチを試行するものもあれば、そうでないものもあります。などなど
失敗したメソッドをいくつか貼り付けることもできますが、それではこの記事がさらに長くなってしまいます。それで、私が考えていないことや見落としていることはありますか?
以下に、Java ファイルの例、その結果、および私が作成した BCEL プログラムを示します。
簡単な例として、DemoClass.java という Java ファイルがあります。
私のシェルで次のJavaコマンドを呼び出した後:
javac DemoClass.java; java -cp bcel-5.2.jar:. InjectCodeBCEL DemoClass test 123456789 ; java DemoClass
(bcel-5.2.jar ファイルは、前述の apache Web サイトにあります)
プログラムは次のようになります。
これは InjectCodeBCEL.java のコードです。
アップデート
以下に、net.sourceforge.pmd.AbstractRuleChainVisitor での visitAll メソッドの注入に失敗した後の完全なエラーを示します。
このメソッドのコード (JD-GUI によって生成):
これは、コードが「insertCodeInMethod」のスタック位置の増加部分を見逃したときに発生したエラーと同等のエラーです。これにより、パラメーターが静的ではない場合、これがフィボナッチコード内で定義された変数と衝突しました。
java - Linux ターミナルからの Java クラスのロード
Java ハーネス クラス (DaCapo ベンチマーク スイート) に適切なベンチマーク Java クラス (cnf.files) をロードしようとしています。Windows では、コマンド " java Harness は問題なく動作します。ただし、Linux を初めて使用するので、Java ハーネス クラスをロードしようとすると、"不明なベンチマーク" というメッセージが表示されます。"java Harness -l" を実行すると、使用可能なすべてのベンチマークが表示されることに注意してください。この Java ハーネス クラスの
Windows のように Java ハーネス クラスをロードする方法を知っていますか?