問題タブ [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.
wcf - VS2010プロファイラーを接続するとWCFサービスにアクセスできなくなります
Visual Studio 2010プロファイラーをwcfサービスに接続した後、次のエラーが発生します。
要求されたサービス「net.tcp:// host:port / path/myservice.svc」をアクティブ化できませんでした。詳細については、サーバーの診断トレースログを参照してください。
それ以外の場合、サービスはうまく機能します。プロファイリングを停止するとすぐに、サービスに接続して再び使用できるようになります。
オンラインで同様の状況に最も近いものはここにありましたが、Net.Tcpリスナーアダプターがサーバーで停止せず、再起動しても役に立ちません。iisresetもありません。
イベントログに次のエントリが記録されています。
AppDomainの初期化に失敗しました:/ LM / W3SVC / 1 / ROOT / MyService
例外:System.Web.HttpException
メッセージ:ファイルまたはアセンブリ'MyService'またはその依存関係の1つを読み込めませんでした。間違った形式のプログラムを読み込もうとしました。InnerException:System.Configuration.ConfigurationErrorsException
メッセージ:ファイルまたはアセンブリ'MyService'またはその依存関係の1つを読み込めませんでした。間違った形式のプログラムを読み込もうとしました。
InnerException:System.BadImageFormatException
メッセージ:ファイルまたはアセンブリ'MyService'またはその依存関係の1つを読み込めませんでした。間違った形式のプログラムを読み込もうとしました。
これは、プロファイラーがインストルメント時に不正なdllを作成しているように聞こえますか?もしそうなら、私はそれをどのように回避しますか?
android - このアクティビティのテスト
テストを自動化したいアクティビティがあります。アクティビティの起動は次のようになります。
- インテントからデータを取得する
- サービスにバインドし、そのアクティビティのインテントデータに固有のオブジェクトを取得します
- これらのオブジェクトをクエリし、情報を画面に出力します
私はアクティビティのテストについて基本的な知識を持っていますが、このアクティビティがサービスやその他のオブジェクトに大きく依存していることを考えると、テストを開始する方法がわかりません。理想的には、サービスは、テスト中に、私が事前に定義したデータのみを返すように設定することもできます。
c - コードの _line_ ごとに自分の関数を呼び出してコードを計測するように gcc に指示するにはどうすればよいですか?
たとえば、次のソースがあります。
次のようにコンパイルする必要があります。
もちろん、my_special_debugging_function はbacktrace
function を使用できる必要があります。
それを行うgccのオプションはありますか?または、ソースコードレベルでそれを行うツールはありますか? (例: my 関数で他の C ソースを生成する)
@related C/C++ ソースと文字列を「インターリーブ」する方法 (適切な場所の関数内のみ)?
@related _CPU_ ではなく、この関数での _real_ 時間 (syscall の待機を含む) を測定するには、どのプロファイラーを使用する必要がありますか?
java - Javaオブジェクトのバイトサイズの計算
Javaオブジェクト[ハッシュマップ]のサイズ[使用メモリ]の計算に取り組んでいます。[実行時]さまざまなデータ型の要素が含まれているため、[no-of-elem*size-of-element]はそれほど適切なアプローチではありません。コードは今、一連の
ただし、このプロセスはCPUを大量に消費し、非効率的です。
代わりに、次の2つのアプローチを考えています。
- オブジェクトをバッファにシリアル化し、サイズを取得します。
- サイズを取得するには、java.lang.instrumentを調べてください
パフォーマンス、効率、スケーリングなどのこれらのアプローチの経験がある人、またはもっと良い方法を知っている人を探しています。
PS:これは私が構築しているバックグラウンドユーティリティなので、サイズはほぼ正確であるはずですが、超正確である必要はありません。だから私は精度とパフォーマンスを交換したいと思っています
ディープサイズには興味がありません[このオブジェクトによって参照されるオブジェクトのサイズは計算されません。]
パフォーマンスの比較を探しており、getObjectSize()が内部でどのように機能するかを理解しているので、パフォーマンスを向上させるために他の何かを台無しにしないでください。
ありがとう
c - C / C ++ソースを文字列で「インターリーブ」する方法(適切な場所の関数内のみ)?
たとえば、次のソースがあります。
次のように変換する必要があります。
つまり、ステートメントを含めることができる各行の最後に、関数内でのみ「MYMACRO\n」を挿入します。
簡単にそれを行う方法は?正規表現を使用する必要がありますか?どのツールを使用する必要がありますか?
たとえば、gccは、関数内で開始(または終了)するすべてのステートメントのすべての行番号を出力できますか?
@related コードの各_line_を自分の関数への呼び出しでコードをインストルメント化するようにgccに指示するにはどうすればよいですか?
@related _CPU_ 1ではなく、この関数で費やされる_real_時間(syscallの待機を含む)を測定するためにどのプロファイラーを使用する必要がありますか
java - 計装
私はASM(バイトコード操作キット)を初めて使用し、Javaバイトコードの計測に使用しています。クラスのメソッドにアクセスし、ASMを使用してそれらのアクセス修飾子を変更したいと思います。誰かがこれを達成する方法について考えを持っていますか?私はvisitMethodを呼び出すことが役立つことを知っていますが、それを正確に行う方法がわかりません。これに関する情報は役に立ちます。ありがとうございました。
c++ - GPIBとQtのインターフェース
C++とQtを使用してGPIBInstrumentsとインターフェースできるかどうか疑問に思いました。可能であれば、誰かがそれがどれほど簡単かを教えてくれたり、チュートリアルや例の方向性を教えてくれますか?
どうもありがとう。
java - Java での同期順序のアサート
並行性の高いシステムでは、ロックの使用法が正しいことを確信するのが難しい場合があります。具体的には、ロックが別のスレッドで適切な順序で取得されているときに、予期しない順序でロックが取得されると、デッドロックが発生する可能性があります。
コードベースで静的分析を行い、「異常な」ロック順序を探すことができるツール (Coverity など) があります。ニーズを満たすために他のオプションを検討したいと思います。
ロックが予期しない順序で取得されているケースを検出できる、Java コードを計測するための軽量* ツールはありますか? コメント/注釈を介してロック命令を明示的に呼び出すことは問題ありません。
無料および/またはオープンソースのソリューションが望ましい。この問題に対するインストルメンテーション以外のアプローチがある場合もコメントしてください。
*私の目的では、軽量とは...
- インストルメンテーションの場合でも、同じ大まかなパフォーマンスでプログラムを実行できます。30 ~ 50% の劣化は許容できると思います。
- 「OK」を出すためだけにツールを操作するのに半日を費やす必要はありません。理想的には、問題が発生したときにのみ使用していることに気付くべきです。
- インストルメンテーションの場合は、運用環境で簡単に無効にする必要があります。
synchronize
すべてのステートメントでコードが乱雑になることはありません。前述のように、相対的な順序でロックされるオブジェクトまたはオブジェクトのクラスに明示的にコメント/注釈を付けることは問題ありません。
android - BroadcastReceiverのテストインストルメンテーションがないのはなぜですか?
多分私は何かが欠けています。BroadcastReceiverのテストケースを書きたいです。具体的には、BOOT_COMPLETEDイベントを受信し、後で処理する別の受信者にアラームを設定するためのものです。適切に設定されていないようですが、重要なのは、それをテストする明確な方法がないということです。デバッガーを正確に接続してBOOT_COMPLETEDを待つことができず、偽のBOOT_COMPLETEDブロードキャストを送信できません。
BroadcastReceiverではなく、Activity、Service、およびProviderのインストルメンテーションクラスがあるのはなぜですか?これをテストするためのアドバイスはありますか?
java - System.setProperty メソッド呼び出しの検出
ここで難問に直面しています。
私が開発したアプリケーションの 1 つは、JAXPのDocumentBuilderFactoryクラスの正しくない実装をロードしています。この動作は、別のチーム/会社によって構築された別のアプリケーションの別のクラスが原因であると後で推測されました。上記のクラスは、以下のような静的ブロックを含めることにより、ロード時に優先 DocumentBuilderFactory クラスを変更しました。
DocumentBuilderFactory.newInstanceメソッドの Javadoc を見れば、newInstance メソッドが呼び出されたときに、上記のコードがすべてのアプリケーションに返されるパーサーの実装を変更していたことは明らかです。
この問題を修正するパッチが適用されましたが、この質問をするようになりました-どのクラスが実行時に System.setProperty 呼び出しを実行しているかをどのように判断しますか?
サーバーにデプロイされたすべてのアプリケーションのすべてのソースにアクセスできなかったという非常に単純な理由で、犯人を釘付けにする変更された System クラスを使用して、OpenJDK のカスタム ビルドを作成しました。しかし、これが可能になったのは、本番環境が完全に複製されたからです。したがって、質問は次のように解釈することもでき ます。実稼働環境で、実行時に System.setProperty 呼び出しを実行しているクラスをどのように判断するのですか?