問題タブ [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.
wpf - UIのインストルメント
UIをどのようにインストルメント化していますか?過去に、人々がユーザーインターフェイスをインストルメント化したことを読みましたが、私が見つけられなかったのは、UIをインストルメント化する方法の例またはヒントです。
インストルメンテーションとは、システムの使用状況とパフォーマンスに関するデータを収集することを意味します。Instrumentationに関するMSDNの記事は、http://msdn.microsoft.com/en-us/library/x5952w0c.aspxです。ユーザーがクリックするボタン、使用するキーボードショート、検索に使用する用語などをキャプチャしたいと思います。
- UIをどのようにインストルメント化していますか?
- インストルメンテーションを保存している形式は何ですか?
- 計測されたデータをどのように処理していますか?
- このインストルメンテーションロジックを使用して、UIコードをどのようにクリーンに保ちますか?
具体的には、UIをWPFに実装しているため、Webベースのアプリケーションをインストルメント化する場合に比べて追加の課題が発生します。(つまり、計測されたデータを中央の場所に転送する必要があるなど)。とは言うものの、このテクノロジーは、アタッチされたプロパティなどの概念を介して、インストルメンテーションのより簡単な実装を提供する可能性があると感じています。
- WPFアプリケーションをインストルメントしましたか?これを実現するためのヒントはありますか?
編集:次のブログ投稿は興味深い解決策を示しています:Pixel-In-Geneブログ:WPFアプリでのUI監査の手法
database - データベース アクセスの計測
Jeff はポッドキャストの 1 つで、彼が常に行っていることの 1 つは、データベース呼び出しのインストルメンテーションを使用して、速度低下などの原因となっているクエリを特定できると述べていました。これは、私が過去に SQL プロファイラーを使用して測定したものですが、アプリケーションの一部としてこれを含めるために他の人がどのような戦略を使用したかに興味があります。
各データベース呼び出しにタイマーを含めて結果をログに記録するという単純なケースですか、それとも「もっときちんとした」方法がありますか? おそらく、すでにこれを行うフレームワークがあるか、同様の機能を提供するLinq-to-SQLなどで有効にできるフラグがあります。
私は主に c# を使用していますが、さまざまな言語のメソッドを確認することにも興味があり、SQL プロファイラーのような db プラットフォーム メソッドでこれを行う「コード」の方法にもっと興味があります。
interop - Interop アセンブリでコード カバレッジ分析を取得することは可能ですか?
MSDN フォーラムでもこの質問をしましたが、解決策が見つかりませんでした。
http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3686852&SiteID=1
ここでの基本的な問題は、相互運用アセンブリには、インストルメント化できる IL が実際には含まれていないことです (おそらくいくつかのデリゲートを除く)。そのため、相互運用レイヤーを実行するテスト プロジェクトをまとめることはできますが、実際に呼び出しているメソッドとプロパティの数を把握することはできません。
プラン B は、RCWW (Runtime Callable Wrapper Wrappers) のライブラリを作成するコード ジェネレーターを作成し、コード カバレッジの目的でそれを計測することです。
編集:@Franci Penov、
はい、それはまさに私がやりたいことです。私たちに提供された COM コンポーネントは、約を含む数十の DLL のライブラリを構成します。3000種類。ライブラリを提供するグループが最小限のテストを行うため、アプリケーションでそのライブラリを使用し、その相互運用層をテストする責任があります。コード カバレッジにより、すべてのインターフェイスとコクラスが確実に実行されるようになります。それが私がやろうとしているすべてです。独自のマネージド コードを実行する別のテスト プロジェクトがあります。
はい、理想的には、COM サーバー チームが独自のコードをテストおよび分析する必要がありますが、私たちは理想的な世界に住んでおらず、彼らの作業に基づいて高品質の製品を提供する必要があります。コード インターフェイスの 80% をテストし、そのうちの 50% が宣伝どおりに機能しないことを示すテスト レポートを作成できれば、回避策の問題ではなく、修正が必要な場所で修正を行うことができます。
あなたが言及したモック レイヤーは便利ですが、最終的に相互運用レイヤー自体をテストするという目標を達成することはできません。私は確かにそれを手作業で維持したくありません。インターフェイスへの変更の。
上で述べたように、次のステップは、ラッパーのラッパーを生成し、テスト目的でそれらを計測することです。
c# - .NET BCL でのトレースとデバッグ
どうやら
デバッグの使用がリリース構成でコンパイルされる という注目すべき例外を除いて、ほとんど同じです。
一方を使用し、もう一方を使用しないのはいつですか? 私がこれまで掘り下げた唯一の答えは、Debugクラスを使用して、デバッグ構成でのみ表示される出力を生成し、Traceはリリース構成にとどまるということですが、それは実際には質問に答えません私の頭。
コードを計測する場合、再コンパイルせずにTraceをオフにできるのに、なぜDebugを使用するのでしょうか?
linux - Linux で "top" を半永久的なインストルメンテーションとして使用する
組み込み Linux を実行するボックスの開発において、「top」を半永久的なインストルメンテーションとして使用する最良の方法を見つけようとしています。(インストルメンテーションは、最終テストおよび本番リリースから削除されます。)
私の最初のパスは、これを init.d に単純に追加することです。
これは、15 秒ごとに「バッチ」モードで実行されます。/tmp に十分なスペースがあると仮定しましょう…</p>
質問:
- 汎用モニタリングに選択する値として 15 秒は適切ですか?
- ディスク容量以外に、これがシステムの状態をどれほど深刻に混乱させていますか?
- このように使用できる他の (おそらくより優れた) ツールはありますか?
c# - winformsインストルメンテーション。
計装に最適なパターンは何ですか。私はアプリケーションを持っていて、ユーザーがアプリでいくつかの機能(フォームを表示したり、特定の機能を表示したりするなど)を実行するたびにメトリックを追跡できるようにしたいのですが、アプリケーション全体にコードを配置したくありません。この計装を行っています。ここでの私のオプションは何ですか?
一日の終わりに、メトリックをリストアップする複数のユーザー間でデータを集約できるようにしたいと思います。
c# - winform の AOP
コードを非常に複雑にすることなく、winform アプリケーションでユーザーのクリックをキャプチャする方法は? AOPが答えですか?インストルメンテーションを追跡する方法は?
c# - WinFormsアプリ用の軽量インストルメンテーション
私はwinformsアプリを持っていて、ユーザーが特定のボタンなどをクリックするたびに、および他のアクションを追跡したいと思っています。この情報を追跡し、それをまとめて、最もよく使用される機能などでメトリックを実行できるようにするための最良の方法は何ですか。
これはWinFormsアプリであり、世界中にユーザーがいます。
java - Javaコンパイラへのプラグイン
生成されたクラスのJavaバイトコードを操作するコンパイル後のステップがあります。私は図書館の消費者の生活をできるだけ苦痛のないものにしたいので、このプロセスを自動化し、(可能であれば)コンパイラに依存しないようにする方法を検討しています。
Annotation Processing APIは、必要な機能の多くを提供します(自動サービス検出、Eclipseでサポート)。残念ながら、これはコードジェネレーターを対象としており、既存のアーティファクトの操作をサポートしていません。
ツールへの初期入力は、第0ラウンドによって作成されたと見なされます。したがって、これらの入力の1つに対応するソースファイルまたはクラスファイルを作成しようとすると、FilerExceptionが発生します。
APIが推奨するデコレータパターンはオプションではありません。
ランタイムエージェント/インストルメンテーションを使用してステップを実行する方法はわかりますが、これは手動のビルドステップよりも悪いオプションです。これは、APIに周辺的に触れられた人でも、JVMを非自明な方法で構成する必要があるためです。
javacによって呼び出されるコンパイラツールにプラグインまたはラップする方法はありますか?ドキュメントの内容に関係なく、誰かが注釈プロセッサを破壊してバイトコードを操作することに成功しましたか?
java - Javaで配列を作成するときにオブジェクトコンストラクタが呼び出されますか?
Java では、配列はオブジェクトです。私の質問は...新しい配列が作成されているときに呼び出される Object コンストラクターですか? この事実を利用して、構築中の配列の長さをチェックする追加のバイトコードを Object コンストラクターに装備したいと考えています。それはうまくいくでしょうか?