問題タブ [measurement]
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.
asp.net - ASP.net - ページ処理時間をクライアント転送時間と区別する方法
ブログの 1 つのタイミング列には、当然のことながら、クライアントの送信タイミングが含まれます。異常分析のために、構築に過度に時間がかかったページと、クライアントの処理速度が遅かっただけのリクエストを区別したいと考えています。
バッファリングされたページについては、ASP.NET ページ ライフサイクル モデルを調べましたが、ページがクライアントにフラッシュされる前のページ処理時間だけをコード単位で測定できる場所がわかりません。
おそらく、私の目標は本番環境の監視 (テストや開発ではありません) であると言及すべきでした。さらに、後で分析するために、この測定値でウェブログに注釈を付けることを目的としています。現在、Response.AppendToLog() を使用してブログに自由に注釈を付けています。Response.AppendToLog() を使用したいという願望は、潜在的なログポイントをいくらか制限すると思います。たとえば、応答オブジェクトは Application_EndRequest では実行できません。
任意の洞察をいただければ幸いです。
metrics - アプリケーションのサイズを測定するために ABC メトリックを使用した人はいますか?
それにはいくつかの良い点があり (Cyclomatic complex の概念をカプセル化するなど)、誰かが「実生活」でそれを使用したかどうか疑問に思っていました。もしそうなら、あなたの経験は何ですか?サイズの有用な尺度ですか (KLOC またはファンクション ポイントとは対照的に)?
私が何を吸っているのか疑問に思っている人のために: ここにいくつかの情報へのリンクがあります: http://c2.com/cgi/wiki/Wiki?AbcMetric
.net - アプリケーションの使用に関するデータを収集する最良の方法は何ですか?
私の会社は、最近私が開発側を引き継いでいる小さなソフトウェア製品をリリースしています。これは C# Windows フォーム アプリケーションです。
私が気づいたことの 1 つは、ソフトウェアがどのように使用されているかに関する情報の多くが上司によってフィルター処理されていることであり、一部のメッセージで重要な詳細が欠落しているように感じます。
この状況で管理の問題に取り組まなければならないことはわかっていますが、この問題について別の見方をするために、技術的な解決策を検討しています. 「マイクロソフト カスタマー エクスペリエンス向上プログラム」に似たものかもしれません。
アプリケーションでのユーザーの行動を監視したり報告したりする経験やアドバイスを持っている人がいるかどうか疑問に思っていましたか?
.net - CPUサイクルのアセンブリ実行数を制限する
指定されたインターフェイスを実装する未知のアセンブリを動的にロードするプロジェクトがあります。インターフェイスを実装する以外に、アセンブリの内容や目的がわかりません。
これらのアセンブリで使用できる処理能力の量を何らかの方法で制限する必要があります。プロセッサの優先順位は私が探しているものではありません。サーバーが任意にビジーである可能性があるため、ストップウォッチを使用してアセンブリの実行に一定の時間を割り当てることができません。
最適には、CPU使用率の完全に負荷に依存しない測定値を指定したいと思います。必要に応じて、独自のプロセスでアセンブリを実行できます。
特定のスレッド(またはスレッドが最適ですが、プロセス)の時間の経過に伴う合計CPU使用率を何らかの方法で測定する方法はありますか?
プロセスパフォーマンスカウンターを使用するのでしょうか、それとも信頼性が低すぎるのではないかと思います。サイクルごとの精度は必要ありませんが、各アセンブリの実行に割り当てられる計算能力を制限するには、かなり高い精度が必要になります。
私の状況を少し外挿します。プロセスの優先順位付けを求めていない理由は、リソースを使い果たすことを恐れていないためです。特定のアセンブリが使用する「いくつの」リソースを測定できることを確認する必要があります。したがって、サーバーが任意であるという私のポイントです。忙しい。
2つのアセンブリXとYがあるシナリオの例を想像してみてください。それぞれが特定のアルゴリズムを実装しており、どのアセンブリが最も速くジョブを実行するかについてのプリミティブテストを実行したいと思います。各アセンブリを実行し、「Z」リソースが使用されるまで実行します。その時点で、どのアセンブリが最適な作業を行ったかを評価します。この場合、一方のアセンブリが100%CPUで3秒間実行され、もう一方のアセンブリが5分間で2%CPUで実行されるかどうかは関係ありません。重要なのは、リソースの合計使用量です。
CPU時間perfcounterを使用して大まかな制限を行うことができるかもしれないと思っています。新しいスレッドで各アセンブリを実行し、所定のCPU時間を使用するまで実行します。その時点で、プロセスを強制終了して結果を評価します。私はそれが十分に正確ではないのではないかと心配しています。
performance - ページの読み込み速度をどのように測定しますか?
「サイトの速度低下」を定量化しようとしています。昔は、HTMLが軽量で、画像が最適化され、サーバーが過負荷にならないことを確認していました。最新のコンテンツ管理システムの上に構築されたハイエンドサイトには、さらに多くの変数があります:サードパーティの広告、トラッカー、その他のさまざまなコールアウト、CDNのパフォーマンス(興味深いことに、コンテンツ配信ネットワークが事態を悪化させることがあります)、javascriptの実行、cssの過負荷、および長いクエリなどのあらゆる種類のサーバー側の問題。
明らかな答えは、すべての開発者がキャッシュをクリアし、Firebugプラグインの「ネット」セクションを継続的に確認することです。「サイトドラッグのお尻」を測定する他の方法は何ですか?
c - 組み込みソフトウェアの Mips 計算
最近 (そして繰り返し) お客様から、当社のソフトウェアを実行するために必要なMIPSについて尋ねられました。通常、これは cpu/os/hw (当社のソフトウェアは移植性が高い) および/またはユースケース (つまり、当社のソフトウェアの使用方法) に依存することをお客様に説明することで、この質問を取り除くことができました。
しかし、私は非常に頑固であるだけでなく、頑固である正当な理由を提供する最後のものを持っています. :) 彼は、私たちのソフトウェアを実行するのに十分な能力があるかどうか確信が持てないため、見積もりを求めています。したがって、この見積もりの前にソフトウェアを購入することは論理的ではありません。(この特定のプラットフォームで実行するにはかなりの量の作業が必要になるため、デモ/評価を提供することはできません。)
そして今、質問があります: 誰かがハードウェアの任意の部分で、任意のソフトウェアでそのようなタスクを経験したことがありますか? 実際の例は本当に役に立ちます。多くの OS と多くのハードウェアでソフトウェアを実行するオプションがあります。したがって、ハードウェアでそのような見積もりを行うためのツールを知っている場合は、それを使用するか、少なくともアイデアを得ることができます。ちなみに、私はeCosPro OSで CPU 負荷を測定する方法しか知りません。
編集:
プローブを使用することは、実際には良い考えです。自分のソフトウェアだけがカウントできるすべての命令を実行している制御環境を作成できると仮定すると、プローブにはそれを行うためのインターフェイスがあると思います。実際、私はいくつかの異なるハードウェアデバッガーを持っています。誰かがそれを行う方法を経験したことがあれば、明日ドキュメントを読んで、うまくいけばこの方向で何かを見つけるでしょう。
java - コード セグメントの Java 実行時間、メモリ使用量、CPU 負荷の測定
Java コードの特定のセグメントについて、以下を測定したいと思います。
- 実行時間 (おそらくスレッド実行時間)
- メモリ使用量
- CPU 負荷 (特にコード セグメントに起因する)
私は比較的 Java の初心者であり、これがどのように達成されるかについてよく知りません。私はJMXに言及されましたが、それがどのように使用されるかはわかりません.JMXは、私がやろうとしていることに対して少し「重い」ように見えます.
start()
理想的には、コード セグメントの前にメソッドを呼び出し、後でメソッドを呼び出すオプションを使用して、何を測定したいかを伝えることができる測定クラスが必要stop()
です。関連するメトリックは、指定したファイルに記録されます。
例えば:
Javaでこれを達成する標準/一般/従来の方法はありますか?
このような測定は 1 回限りのパフォーマンス比較のためのものであるため、本番環境での長期的な監視プロセスを探しているわけではありません。
チュートリアルや外部の例を参照できることを嬉しく思いますが、ここで完全な回答を期待することはできません。とはいえ、上記のような単純なものを実現できれば、現実的な例はうまくいくでしょう。
performance - 生成されたデータを渡し、いくつかの統計を分析させることができるアプリケーションはありますか?
基本的な要件は、C#コード(マネージコードまたはコマンドから定期的にデータを取得できるもの)から、コマンドの種類と実行時間(おそらく他のデータもありますが、現時点で関係している基本データです)に渡すことです。行。そしてそれについていくつかの統計分析を実行します:各コマンドタイプの平均時間、標準偏差、いくつかのチャートがいいでしょうなど。
これをリアルタイムで実行できるものが望ましいかもしれませんが、データを自分で保存し、それを渡して分析することも許容できると思います。
このために何かを書くことはできますが、おそらくこれのために何かがあるはずです。
編集:基本的に低い学習曲線を探して、上記のことを行うことができます。基本的には、手動でコーディングするよりも習得して使用する方が速いものです。
c# - .NET で複数の同時スレッドを使用してコード ブロック (スレッド) の実行時間を測定する方法
今、私たちはこのようなものを使用しています
これは同期メソッドでは問題なく機能しますが、一部は非同期で実行されるため、複数のスレッドが実行されていると時間がずれます。現在のスレッドで費やされた時間のみを測定する System.Diagnostics.Stopwatch に相当するものはありますか?
内部ベータ (アルファ?) リリースで長期間にわたってデータを収集したいと考えており、プロファイラーでフルタイムで実行することは現実的なオプションではありません。
編集: 明確にするために、method() の実行に費やされた時間のみを測定したいので、Method1() と Method2() の両方が同時に開始し、Method1 が 2 秒マークで終了し、Method2 が 4 秒マークで終了した場合、 Method1 の実行に約 1 秒を費やし、Method2 の実行に約 3 秒を費やしたことを教えてくれるものが必要です (最初の 2 秒間は (シングル コアと仮定) プロセッサを均等に共有したと仮定します。
bandwidth - プログラム可能なネットワーク診断ツール?
帯域幅などを測定するために使用できるネットワーク診断ツールはありますか?
そのため、これを実行できるツールはたくさんありますが、アプリケーションやプログラムに組み込むことができるツールが必要です。環境は WinCE ですが、一般的なツールもリストしてください。できればオープン ソースです。