問題タブ [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.
c++ - 移植可能な方法で配列の新しい配置を使用できますか?
配列に使用する場合、移植可能なコードで新しい配置を実際に利用することは可能ですか?
new[] から返されるポインタは、渡したアドレスと必ずしも同じではないようです (5.3.4、標準の注記 12 は、これが正しいことを確認しているようです)。この場合、配列が入るバッファを割り当てることができます。
次の例は、問題を示しています。この例を Visual Studio でコンパイルすると、メモリが破損します。
メモリーを見ると、コンパイラーはバッファーの最初の 4 バイトを使用して、項目数のカウントを格納しているようです。これは、バッファーがsizeof(A)*NUMELEMENTS
大きいだけであるため、配列の最後の要素が未割り当てヒープに書き込まれることを意味します。
質問は、placement new[] を安全に使用するために、実装が必要とする追加のオーバーヘッドをどれだけ見つけられるかということです。理想的には、異なるコンパイラ間で移植可能な手法が必要です。少なくとも VC の場合、オーバーヘッドはクラスによって異なるように見えることに注意してください。たとえば、例で仮想デストラクタを削除すると、new[] から返されるアドレスは、渡したアドレスと同じになります。
c++ - C++ で関数を呼び出す際のオーバーヘッドはどれくらいですか?
多くの文献では、インライン関数を使用して「関数呼び出しのオーバーヘッドを回避する」ことが述べられています。しかし、私は定量化可能なデータを見たことがありません。関数呼び出しの実際のオーバーヘッド、つまり、関数をインライン化することによってどのようなパフォーマンスの向上が達成されるでしょうか?
java - import package.* vs import package.SpecificType
import java.*
1 つのパッケージ ( )内のすべての型をロードするインポートを作成するオーバーヘッドに関する違いはあると思いますか? 特定のタイプ(つまりimport java.lang.ClassLoader
)だけではありませんか?2番目のものは、他のものよりも使用するのに適した方法でしょうか?
c# - C#で関数のインライン化を強制する方法はありますか?
私の知る限り、特定の関数をインライン化するようにc#コンパイラにヒントを与える方法はありません。これは、設計上、そのようなものだと思います。
また、プログラマーにインライン化するものとそうでないものを指定させないことは、一般的には良い考えだと思います。これは、JITコンパイラーよりも賢いと思うことを意味するためです(実際の人には敬意を表します)。ターゲットマシンでどのようにそれを達成するかに関係なく、コードの重要な部分がどんな犠牲を払っても非常に高速である必要があることを指定したい場合はどうでしょうか。今のところ、そのようなことはできません。c#言語とJITの両方がこの機能をサポートするのではないかと思います。
私の場合、ターゲットマシンが何であるかを知っており、関数のインライン化がパフォーマンスの向上に役立つことを知っています。これにより、関数のインライン化を強制する唯一の方法は、JITがどのような状況でそれを実行するかを知ることだと思いますが、それも良い考えではないと思います。
主題に関するどんな光でも大いに感謝されるでしょう。
ありがとう。
complexity-theory - REXXでのlength()の処理オーバーヘッドはどれくらいですか?
REXXのlength()関数の処理オーバーヘッドは、文字列の長さによってどのように変化しますか?
更新:私は使用しています:
- uni-REXX(R)バージョン297t
- Open-REXX(TM)Copyright(C)iXCorporation1989-2002。全著作権所有。
.net - .NET 配列のメモリ レイアウト
.NET 配列のメモリ レイアウトとは何ですか?
たとえば、次の配列を取ります。
配列の大部分が次のようなものであることを理解しています。
各文字は 1 バイトで、数字は配列のインデックスに対応します。
さらに、型参照とすべてのオブジェクトの syncblock-index があることを知っているので、上記をこれに合わせて調整できます。
さらに、配列の長さを保存する必要があるため、おそらく次のほうが正しいでしょう。
これで完了ですか?配列にさらにデータがありますか?
私が尋ねている理由は、かなり大きなデータコーパスのいくつかの異なるメモリ内表現がどれだけのメモリを必要とするかを見積もろうとしているからです.配列のサイズはかなり異なります.一方のソリューションでは大きな影響がありますが、もう一方のソリューションではおそらくそれほど影響はありません。
基本的に、配列の場合、どのくらいのオーバーヘッドがあるか、それが基本的に私の質問です。
そして、配列が悪い分隊が目覚める前に、解決策のこの部分は静的な一度だけ参照されるタイプのものであるため、ここでは成長可能なリストを使用する必要はありません。
c++ - 空のベクターのオーバーヘッド コストはどれくらいですか?
空のベクターとベクターへのポインターのメモリオーバーヘッドはどれくらいですか?
オプション A:
オプション B:
オプション B は 1 つの 32 ビット ポインターを使用すると思います (ここでは 32 ビットを想定しています) 空の 'v' はどのくらいのメモリを占有しますか?
mysql - MySQL では、「オーバーヘッド」とは何を意味し、何が悪いのか、それを修正する方法は?
簡単な質問ですが、しばらくの間私を悩ませてきました....
MySQL の「オーバーヘッド」とは何ですか? 心配する必要がありますか?
「テーブルの最適化」をクリックすると、実際に修正されますか?
logging - ファイル内のログ情報のオーバーヘッド
数時間から数日かかる長いシミュレーションを行っており、情報をファイルに記録しています。ファイルは数百 MB のサイズに達する可能性があり、その中には数字のリストだけがあります。これが発生しているオーバーヘッドについて本当に心配しています。この方法を使用することのオーバーヘッドが本当に大きいかどうか、また、同じことを行うためのより効率的な方法が他にある場合は、情報をログに記録することをお勧めします。
私は C++ を使用しており、ファイルをログに記録するために、fprintf の一般的な方法を使用しています。オーバーヘッドを説明するには、今回は使用せずに今回かかるファイルを使用するなどの実用的な例を挙げることができれば、それが理想的です。
いくつかのテストを行いましたが、オーバーヘッドがファイルのサイズに比例して増加するかどうかはわかりません。私が言いたいのは、サイズが 1Mb のファイルに行を追加することと、サイズが 1Gb のファイルに行を追加することは同じではないということです。ファイルのサイズに応じてオーバーヘッドがどのように増加するかを知っている人はいますか?