問題タブ [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.
php - ディレクトリのリストを取得するとphpのパフォーマンスにどの程度影響しますか
今回は非常に簡単な質問です。基本的に、フォルダーのグループがあり、それらのいくつかには、サイト スクリプトを実行するたびに自動ロードしたいファイルが含まれています。ただし、プロセスを動的にし、さまざまなファイルをその場で作成および削除できるようにするため、自動ロードするファイルを指定する必要はありません。もちろん、最も簡単な解決策は、ディレクトリ内のフォルダーのリストを取得し、自動ロード ファイルへのパスを作成することです。ファイルが存在する場合は、スクリプトにそれらが含まれます。しかし、私の質問は、それがスクリプトのパフォーマンスにどの程度影響するかということです。実際には後でリリースしたいフレームワークなので、パフォーマンスはかなりの問題です。何か案は?
spring - Spring アノテーション構成はオーバーヘッドのように見えます
Spring Security に特定のアノテーションを使用する
には、config(applicationContext.xml) で明示的に許可する必要があることに直面しました
。例:
フレームワーク化されたアプリケーションで許可されている注釈を明示的に宣言するアプローチには、どのような利点がありますか?
オーバーコンフィギュレーションのようですね。
c++ - 非仮想ベースメソッドを呼び出すときに、C ++で仮想継承のペナルティ/コストはありますか?
基本クラスから通常の関数メンバーを呼び出すと、C ++で仮想継承を使用すると、コンパイルされたコードで実行時のペナルティが発生しますか?サンプルコード:
c++ - メモリのコスト [de]allocation と潜在的なコンパイラの最適化 (c++)
メモリの [割り当て解除] のコストは明確に定義されていますか? コストが使用されている特定のコンパイラに依存する場合、コストを合理的に想定できるようにメモリの[割り当て解除]を実装する一般的な方法はありますか?
コンパイラは、'new' の呼び出しが 1 回だけ実行されるように、次のコードを最適化できますか?
java - Java での時間測定オーバーヘッド
低レベルで経過時間を測定する場合、次のいずれかを使用する選択肢があります。
どちらの方法も実装されていnative
ます。Cコードを掘り下げる前に、どちらかを呼び出す実質的なオーバーヘッドがあるかどうかを知っている人はいますか? つまり、余分な精度をあまり気にしない場合、どれが CPU 時間の消費が少ないと予想されるでしょうか?
注意: 私は標準の Java 1.6 JDK を使用していますが、質問はどの JRE でも有効かもしれません...
objective-c - iOS: Objective-C メソッドを呼び出す際の処理オーバーヘッドはどれくらいですか?
オーディオ ユニットのレンダリング コールバックで実行されるリアルタイム オーディオ処理コードを作成しています。
このスレッドは、システムが認識する最高の優先度レベルにあります。
Apple は、この呼び出しで行われる処理量を最小限に抑えるように指示しています。彼らの推奨事項の 1 つは、Objective-C メソッドの呼び出しを避けることです。
しかし、なぜ?
Objective-C メソッドが呼び出されるとどうなりますか? 実際のオーバーヘッドはいくらですか?
java - Java ロギング API のオーバーヘッド
Javaでデバッグメッセージをログに記録するさまざまな方法について少し読んだことがあります.Cの背景から来て、私の懸念は次のとおりです。
これらのライブラリは、ロギングが無効になっている場合 (実稼働環境など) に最小限のオーバーヘッドを要求しますが、それらのlog()
関数への引数は引き続き評価されるため、現実のシナリオでのオーバーヘッドは実際にはまったく無視できないという懸念があります。
たとえば、ログ関数自体が何もしない場合でも、 alog(myobject.toString(), "info message")
には を評価するオーバーヘッドがまだありますmyobject.toString()
。これはかなり大きくなる可能性があります。
誰もこの問題の解決策を持っていますか?
PS: C のバックグラウンドについて言及した理由を知りたい人のために: C では、プリプロセッサ マクロとコンパイル時の命令を使用できます。これにより、コンパイル時のデバッグに関連するすべてのコードが完全に削除されます (マクロのパラメーターはまったく表示されません)。
編集: 回答の最初のバッチを読んだ後、Java には明らかにそのトリックを実行するものがないようです (CPU のすべてのビットが重要なモバイル環境で大きなループで数値の余弦をログに記録することを考えてください)。そのため、IDE ベースのソリューションを使用することもあると付け加えておきます。私の最後の手段は、「すべてを検索/置換」マクロのようなものを構築することです。私は最初、アスペクト指向のフレームワークから得た何かが役立つのではないかと考えました...誰か?
c++ - boost :: bindはオーバーヘッドを引き起こしますか?
私は現在、ネットワークソフトウェアに取り組んでいます。メインクラスが1つあり、server
これは明らかにサーバーインスタンスを表します。
インスタンスはリクエストを送信でき、server
ユーザーにはコールバックによってレスポンスが通知されます。
コードは次のようなものです。
ここで、コールバックを呼び出したインスタンスについて知りたいユーザーとして、次のことができるとしましょう。
しかし、私は疑問に思います:そうすることで何かオーバーヘッドはありますか?通話mycallback
は「通常の」通話を使用するよりも遅くなりますか?
ありがとうございました。
脚注:もちろん、次のように変更することもできtypedef
ます。重大なオーバーヘッドが発生したtypedef boost::function<void (const server& sv, int duration)> callback_func;
場合は、おそらくそれを最終的に実行します。boost::bind
の使用を意味するコストを知りたいだけですboost::bind
。
c++ - 未使用のコードのオーバーヘッド
コードに未使用の関数があると、どのようなオーバーヘッドが発生するのでしょうか。
たとえば、デバッグログがあり、ほとんどのオブジェクトにデバッグログで使用されているToString()関数を指定するとします。
リリースビルドでは、デバッグログは使用されていません。それなら、それらのToString()関数のソースコードを削除する価値はありますか?(例えば、マクロ経由?)
それとも、実行可能ファイルをわずかに大きくするだけで、それ以外の場合はパフォーマンスに影響を与えませんか?たとえば、速度への影響はありませんか?または、コンパイラまたはリンカは、関数が使用されていない場合、関数を削除する可能性さえありますか?コンパイラまたはリンカがコードを削除しない場合、ToString()関数がインラインで定義されているとどうなりますか?おそらくそれはコードをインライン化しようとします、そして関数が決して呼び出されないので、それは消えますか?
すべての関数を静的ライブラリに保持する必要があると思いますが、実行可能ファイルにコンパイルされると、確かに多くのものがリンカーによって無視されますか?
ほぼ同様の別の注意点として、コンパイラがインライン関数をインライン化しないことを選択した場合、インライン関数は複数のコンパイルユニットで関数として定義され、リンカーは不要な定義を削除し、最後にそのうちの1つのみをリンクします。 ?
ありがとう
shared-memory - 共有メモリに同時にアクセスすると、パフォーマンスが低下しますか?
マルチコアシステム用のシンプルなマルチスレッドアプリがあります。このアプリには、特定のメモリアドレスに書き込むスレッドがない並列領域がありますが、同時に読み取るスレッドもあります。
ロックが使用されていない場合でも、同じメモリにアクセスする複数のスレッドに関連するある種のオーバーヘッドまたはパフォーマンスの低下はありますか?もしそうなら、なぜですか?それはどれほど大きな影響を与えることができ、それに対して何ができるでしょうか?