問題タブ [instrumentation]

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 に答える
578 参照

c++ - 複数の GPIB *SAV 操作中に Agilent E4426B 信号発生器がロックする

National Instrument Ethernet-to-GPIB ブリッジを介して PC に接続された Agilent E4426B RF 信号発生器を備えたテスト フィクスチャがあります。私のソフトウェアは、機器をプリセットし、現在の状態を標準 SCPI コマンド「*SAV x,y」で書き込み可能なすべてのメモリ位置に保存することで、機器をサニタイズしようとしています。

ループはある程度機能しますが、最終的に機器はエラーで応答し、前面ディスプレイに「L」アイコンを表示し続け、下部に「リモート プリセット」メッセージを表示します。その時点で、それ以上のリモート コマンドに応答しなくなり、電源を入れ直すか、LOCAL を押してから PRESET を押す必要があります。この時点で、プリセットが完了するまでに約 3 分かかります。その時点で「L」アイコンはまだ存在し、次の GPIB コマンドが測定器に送信されると、測定器エラー キューに -113 エラー (未定義のヘッダー) が報告されます。

NIスパイを起動して何が起こっているのかを確認したところ、ループの同じポイントでエラーが発生していることがわかりました。この場合は「* SAV 6,2」です。NIスパイから:

送信 (0, 0x0017, "*SAV 6,2", 8 (0x8), NLend (0,0x01))
プロセス ID: 0x00000520 スレッド ID: 0x00000518
ibsta:0xc168 iberr: 6 ibcntl: 2(0x2)

計測器ドライバーのコードは次のとおりです。

内部ループの最後に小さな Sleep() 遅延 (10 ~ 20 ミリ秒) を入れてみましたが、驚いたことに、エラーが遅くではなく早く表示されました。10 ミリ秒ではループが 44.1 でエラーになり、20 ミリ秒ではさらに早くなりました。原因となっている配線や測定器の不具合はすでに排除しました。これと同じタイプのシーケンスは、ハイエンドの信号発生器でエラーなしで機能するため、これを機器のファームウェアのバグと見なしたくなります。

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

java - BTrace で char[] を文字列に変換する

btraceを使用してアプリケーションをプロファイリングしていますが、制限に直面しています。current の名前を取得しようとしていますjava.lang.Thread。通常は呼び出すことができますgetName()が、btrace スクリプトでは禁止されています (すべての呼び出しは例外ですBTraceUtils)。
から文字列を取得する方法はありますchar[]か?

元のタスクは、スレッドの名前に部分文字列が含まれているかどうかを確認してから、トレース情報をログアウトします (出力を減らします)。

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

python - Python での数値線形代数の計測

数値線形代数には numpy を使用します。たとえば、特定の計算を実行する方法を少し変更して、メモリ効率を向上させると、パフォーマンスが大幅に向上すると思います。

キャッシュと TLB のミスを検出するために Python で利用できる何らかの形式のインストルメンテーションがあるかどうか疑問に思っていました。最近のクラスで学んだ非常に優れた API、PAPI がありますが、Python インターフェイスはありません。

http://icl.cs.utk.edu/papi/overview/index.html

また、numpy やその他の python 数値コードをプロファイリングする一般的な方法はありますか? timeit モジュールをコードに統合するのは困難です。mpi4py には、MPE ライブラリを使用してプロファイリングする優れた方法があります。デモ コードのスニペット (demo/mpe-logging/cpilog.py):

グラフィカルに表示できるログ ファイルが作成されます。しかし、これは少し MPI 特有のものです。

ありがとう。

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

c# - 並列タスクがある場合の Web ページの計測のベスト プラクティス

Web ページのパフォーマンスを把握し、Trace.Write を使用しようとしています。

問題は、Parallel.Invoke を使用し、Trace.Write を使用して報告したいスレッドをさらに開始することです。

Trace.Write はトレースの良い方法ではないことに気付きました。最後のエントリからの時間が表示されるため、より多くのスレッドが書き込みを行っている場合は意味がありません..

質問: Parallel ライブラリを使用する場合にページをインストルメント化する方法について何か良い提案があれば教えてください。それとも、独自のトレースを作成する必要がありますか!?!?

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

java - Ant ビルド - Emma コードの計測 - JUnit テストにはインターフェースが必要ですが、Emma はそれらを計測しません

アプリケーションとテストの Java ソース コードをコンパイルし、アプリケーション クラスを計測し、JUnit テストを実行し、JUnit と Emma のコード カバレッジ レポートを生成する Ant ビルド ファイルがあります。JUnit タスクには、計測されたクラスへのパスが与えられます。

問題は、インターフェイスがインストルメント化されていないことです ( Emma FAQ ) が、テストでそれらを使用し、JUnit がそれらを見つけることができません。

私は2つの解決策を考えることができます:

  • テストでインターフェイスを使用しないでください(インターフェイスへのプログラミングに反します-テストでカウントされますか?)
  • インストルメント化されたクラスの横にインターフェイスをコピーします (インターフェイスへのパスをハードコーディングします)。

この問題にどのようにアプローチし、解決する必要がありますか?

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

android - インストルメンテーション テストでキー イベントをヘッドレス エミュレータに送信する方法は?

現在、ビルド サーバーで実行されるインストルメンテーション テスト スイートに取り組んでいますが、テストは通常​​の Android エミュレーターを使用する開発マシンではパスしますが、ビルド サーバーでは-no-windowフラグ付きのヘッドレス エミュレーターしか実行しないため、ビルドは失敗します。

InstrumentationTestCase.sendKeys()オプション メニューをプログラムで開くメソッドを呼び出そうとすると、エラーが発生します。エラーは次のとおりです。

権限が拒否されました: pid 646 uid 10026 から uid 1000 が所有するウィンドウ Window{43d55100 paused=false} にキー イベントを挿入しています

その後、アクセス許可があることがわかりましたがINJECT_EVENTS、マニフェストに設定しても効果がありませんでした。実際、ログには次の出力がありました。

android.permission.INJECT_EVENTS をパッケージ com.qype.radar に許可していません (protectionLevel=2 flags=0x6644)

この許可は役に立たないということですか?

また、インストルメンテーション テスト アプリとテスト対象のアプリが同じ Linux ユーザー ID を共有android:sharedUserIdし、同じプロセスで実行できるようにしようとしました ( android:process-- 既にそうなっているかどうかはわかりませんでした) が、それでもうまくいきませんでした。

これは、ヘッドレス エミュレーターで重要なイベントを含むインストルメンテーションを実行することが現在不可能であることを意味するのでしょうか、それとも何か不足しているのでしょうか?

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

.net - マネージド バイナリを逆アセンブルして .cs コードを取得する

これは可能ですか?インストルメント化されたときにアクセス違反の例外をスローするバイナリがあります。インストルメント化されたコードをステップ実行したいので、インストルメント化されたコードのソース コードを生成する必要があります。方法はありますか?

ありがとう

0 投票する
5 に答える
39838 参照

android - adb shell am Instrumentation コマンドを使用して起動したテスト関数にパラメータを渡すにはどうすればよいですか

私は Android で開発しています。電話アプリケーションをテストするためにインストルメンテーションを使用しています。インストルメンテーションは、アプリケーションをテストするための Android env です。

そのために、テストケースの名前で am コマンドを使用します。adb を実行し、adb シェルに入り、シェルに am コマンドを記述します。

このamコマンドと一緒にパラメータを渡したい。つまり、am コマンドによって起動されたテストにパラメーターを渡したいということです。

出来ますか ???助けてください ?

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

.net - .Net Binary Deserialization ランタイム プラットフォームの障害検出/フォレンジック

Microsoft .Net バイナリ デシリアライゼーション エラーのソース タイプを公開するためにランタイム プラットフォームをインストルメント化する方法についての洞察を探しています。

使用しBinaryFormatter.Deserialize(StreamingContextStates.CrossMachine)ていて、型の 1 つが現在のバイナリに存在しない場合。エラーをスローする代わりに、.Net は object を挿入します[TypeLoadExceptionHolder]。特にコレクションの場合、これはすぐには問題になりません。

その後、コレクションがアプリケーション層間の伝送のためにシリアライズされるとき。[TypeLoadExceptionHolder]シリアル化できないため、プラットフォームは「シリアル化の失敗」を受け取ります。そのため、結果として生じるエラーは、問題の原因となったソース タイプに関する手がかりを実際に提供するのには役に立ちません。現在、何百万行ものプラットフォームに新しいタイプを追加した開発者 (何百人もいる) を見つけるための狩り (時間の浪費) が行われています。

この問題は、プラットフォームのセッション キャッシュをサポートするために使用されるシリアライゼーション ストリームが原因で、ある程度の頻度で発生します。コードはかなりの頻度で段階的に展開されます。顧客のページ要求は、展開期間中にコードベースの古いバージョンと新しいバージョンの間でバウンスする可能性があります。不注意に新しいタイプを導入すると、古いバージョンのページリクエストが爆発する原因になります。

ランタイム リッチ エラー/トラップの提供に関するご意見をお待ちしております。


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

c# - NHibernate、Oracle、および SQL インスツルメンテーション

これを首尾一貫した意味のある方法で表現できれば幸いです。

NHibernate を使用している理由と ORM フレームワークの利点を説明するメールを送信した後、2 人の DBA が今日私のところに来ました。彼らは私たちのストアド プロシージャをリファクタリングして、次のようなインストルメンテーションを含めるよう強く求めてきました。

BEGIN DBMS_APPLICATION_INFO.set_module(module_name => 'Human Resources' ,action_name => 'Get Employees');

{SQL はこちら}

DBMS_APPLICATION_INFO.set_module(NULL, NULL);

私の質問は、これをどのように達成できるかということについてです。これの実装を見つけることに対して推奨される大きな警告はありますか?これがあまりにも苦痛である場合、代替手段はありますか?

前もってありがとう、-ショーン