問題タブ [overhead]
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.
profiling - Linux カーネルのパフォーマンス イベント サブシステムのパフォーマンス オーバーヘッド
Linux のパフォーマンス カウンターは、すべてのパフォーマンス分析のフレームワークを提供する新しいカーネル ベースのサブシステムです。ハードウェア レベル (CPU/PMU、パフォーマンス モニタリング ユニット) 機能とソフトウェア機能 (ソフトウェア カウンター、トレースポイント) もカバーしています。2.6.33 以降、カーネルは、開発者がカーネル カウンターを作成してシステム ランタイム情報を収集するための「perf_event_create_kernel_counter」カーネル API を提供します。私が最も懸念しているのは、tracepoint/ftrace が有効になっている場合のシステム全体へのパフォーマンスへの影響です。それらについて見つけることができるドキュメントはありません。ftrace はコードに動的にパッチを適用することによって実装されていると聞いたことがありますが、システムが劇的に遅くなりますか?
java - 新しい種類のスレッドが実行される場合、より大きなスレッドプールまたは追加の ExecutorService ですか?
ExecutorService
Java での s のオーバーヘッドの可能性に関連する質問があります。
現在の実装ExecutorService A
では、5 つのスレッドの容量があります。
- タイプのスレッドを実行し
A
ます。 - タイプ
A
スレッドは、データベースの読み取りと書き込みを行います。
これで、 type のスレッドは、 type のいくつかのスレッドが終了B
した後に実行されます。A
- 実行されるタイプ
B
スレッドの数は、その時々で異なります。 - タイプ
B
スレッドは、(データベースではなく) ファイルシステム IO を実行します。
だから私はすべきですか
ExecutorService
タイプのB
スレッドを処理するために新しいものを追加します- または、その容量を増やして
ExecutorService A
タイプB
スレッドを実行する必要がありますか?
Java が を 2 つ持つために余分なオーバーヘッドが発生する可能性があると考えていますがExecutorService
、その一方でスレッドの総数はいずれにせよ増加します。それはまったく問題ですか?
php - 出力バッファリングは FS ヒットよりもコストがかかりますか?
それはそれについてです。OB はファイルを含めるよりも重いですか?
overhead - 「オーバーヘッド」とは何ですか?
私はコンピュータサイエンスの学生ですが、プログラムや並べ替えに関しては「オーバーヘッド」という言葉をよく耳にします。これは正確にはどういう意味ですか?
sql-server - SQL Server の sql_variant 列のオーバーヘッドのバイト単位のコストはどれくらいですか?
精度が 15 桁の float データ型の列を多数含むテーブルがあります。各列は 8 バイトのストレージを消費します。ほとんどの場合、データはこの程度の精度を必要とせず、実際のデータ型として格納できます。多くの場合、値は 0 になる可能性があり、その場合、1 バイトを格納するだけで済みます。
ここでの私の目標は、容量ストレージの要件を最適化することです。これは、SQL Express の 4GB データベース サイズ制限で作業する際に直面している問題です。
byte、real、および float データ型が sql_variant 列に格納されている場合、これらの値の格納に明らかにオーバーヘッドが伴います。このオーバーヘッドのコストはいくらですか?
次に、sql_variant 列のデータ型を使用するように切り替えると、実際に大幅な領域の節約になるかどうか (またはそうでないかどうか) を評価する必要があります。
ありがとう、エラン
c# - C#での計算のオーバーヘッド-ゲッター/セッターの使用と配列の直接変更およびキャスト速度
私は長蛇の列を書くつもりでしたが、ここでそれを要約します:
XNAを介してNESのグラフィカルなオールドスクールスタイルをエミュレートしようとしています。ただし、私のFPSは低速で、フレームあたり65Kピクセルを変更しようとしています。すべての65Kピクセルをループして任意の色に設定すると、64FPSになります。どの色をどこに配置するかを調べるために作成したコードで、1FPSを取得します。
オブジェクト指向のコードが原因だと思います。
現在、私は物事を約6つのクラスに分けており、ゲッター/セッターがいます。少なくともフレームごとに360Kのゲッターを呼び出していると思いますが、これはかなりのオーバーヘッドだと思います。各クラスには、カスタム列挙、int、Color、またはVector2Dバイトを含む/および-または1Dまたは2D配列が含まれます。
すべてのクラスを1つにまとめて、各配列のコンテンツに直接アクセスした場合はどうなりますか?コードは混乱しているように見え、オブジェクト指向コーディングの概念を捨てますが、速度ははるかに速いかもしれません。
配列内のデータを取得/設定しようとするとブロック単位で実行されるため、アクセス違反についても心配していません。たとえば、配列へのすべての書き込みは、配列からデータにアクセスする前に行われます。
キャストに関しては、カスタム列挙、int、Color、およびVector2D、バイトを使用していると述べました。 .net Framework、XNA、XBox、C#で最も速く使用およびアクセスできるデータ型はどれですか?絶え間ないキャストがここでのスローダウンの原因かもしれないと思います。
また、数学を使用してデータを配置するインデックスを決定する代わりに、事前に計算されたルックアップテーブルを使用したので、フレームごとの定数の乗算、加算、減算、除算を使用する必要はありません。:)
c++ - 仮想関数のオーバーヘッドをテストする
1レベルの単一継承における仮想関数のオーバーヘッドを決定するために(おそらく非常に非科学的な)小さなテストを設定しました。得られた結果は、派生クラスに多態的にアクセスする場合と直接アクセスする場合でまったく同じでした。少し驚いたのは、関数が仮想として宣言されたときに導入される計算時間の大きさでした(以下の結果を参照)。
メンバー関数をそのように宣言するとき、非常に多くのオーバーヘッドがありますか?また、派生クラスに直接アクセスする場合でも、なぜそれがまだ存在するのですか?
コードは次のとおりです。
結果:
base* mybase = new derived;
平均で約338ミリ秒になります。
derived* myderived = new derived;
平均で約338ミリ秒になります。
継承を削除して仮想関数を削除すると、平均で約38ミリ秒になります。
それはほぼ10分の1です!したがって、基本的に、仮想として宣言された関数がある場合、それを多態的に使用しなくても、オーバーヘッドは常に同じように存在しますか?
ありがとう。
.net - WCF。ConcurrencyMode.Multiple のオーバーヘッド
同期的に使用される WCF サービスがありますが、サービスは実際にはステートレスであるため、その ConcurrencyMode は ConcurrencyMode.Multiple 値に設定されています。このモードのオーバーヘッドはどれくらいですか? モードを ConcurrencyMode.Single に変更することは理にかなっていますか?
delphi - 長いループでメッセージを処理するときにオーバーヘッドを最小限に抑えるにはどうすればよいですか
Delphiプログラムには、長くて単純なループがいくつかあります。これは、何百万回もループし、実行に数秒かかる場合があります。ループ内のコードは非常に高速で、最適化されています。何度も行われるので時間がかかります。
例えば:
プログラムが応答しなくなることを望まないので、ループ内にApplication.ProcessMessagesを追加します。ただし、追加されたステートメントによってループの速度ができるだけ遅くならないようにする必要もあります。
リンクリストをフォローしているので、利用可能なカウント変数すらありません。間隔が必要な場合は、カウント変数を追加する必要があります。または、タイマーを追加する必要がありますが、時間チェックを最小限に抑える必要があります。
追加されるオーバーヘッドを最小限に抑えるために、これをどのように実装する必要がありますか?
結論:
今のところ、私はAPZ28の答えのようなことをしています。
しかし、長期的には、これを処理するために何らかのスレッドを実装する必要があるようです。Application.ProcessMessagesがそれを行う唯一の方法だと思ったので、これを指摘してくれてありがとう。
objective-c - 画面外でのグラフィック操作によって処理オーバーヘッドが発生しますか?
アプリのいくつかのグラフィカル ルーチンを最適化しようとしています。オフスクリーン アニメーション ([object startAnimating] など) なのか、それとも rect (オフスクリーン) を設定して UIImageView を単純に動かしているのかを知りたいのですが、プロセッサのオーバーヘッドがありますか、それとも画面外のときに何らかの形で無視されますか?
助けてくれてありがとう。