問題タブ [memory-layout]
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.
java - 別の内部クラスの内部サブクラス - ルート クラスへの参照はいくつありますか?
構造があるとします
のインスタンスにC
は、ルート クラスへの 2 つの参照が必要なようです。1 つ目はスーパークラスA
から継承されB
、2 つ目は独自の暗黙的な内部クラス参照です。私の質問: JVM (HotSpot) はこのケースを最適化し、ルート クラスへの参照を 1 つだけ保持しますか?
c++ - 構造体アラインメント C/C++
c/c++ の場合 (この点に関しては同じであると想定しています)、次の場合:
以下は真であることが保証されていますか?
言い換えれば、最初のメンバーの前にパディングがないという保証はありますか?
linux - マルチスレッド プロセスのメモリ レイアウト
上向きに成長するすべてのスレッドに共通のヒープがあり、下向きに成長するスレッドごとにスタックがあることを私は知っています (本当にそうですか、スタックは下向きに成長しますか、それとも単純な見方ですか?)。スタックがヒープスペースの一部になる可能性があることをどこかで読んだことさえあります。
そして、これらのスタックはどのように配置されますか? 上下に?一番上のスタックがオーバーフローし、その下のスタックに書き込もうとするとどうなりますか? 本当にこんな感じですか?詳細ビューをお願いします。
java - Java で C++ スタイルのリストを実装できますか?
Java の arrayList は、実際のオブジェクト データではなく、オブジェクトへの参照を「保持」します。
Java で、参照の代わりにオブジェクト データを直接格納できる arrayList を実装できるかどうか疑問に思っていました。この実装にJava Unsafe Classを使用できますか? はいの場合、既存の Java arrayList と比較して、このリストのパフォーマンスはどうなりますか?
python - numpy 配列のバッファ パーティション
Matlab では、行列のバッファは column で連続しています。では、Python の numpy 配列はどうでしょうか。と の間でどちらが良いnumpy.empty((n,1))
かnumpy.empty((1,n))
c++ - データメンバーのコンパイル時の再配置?
クラスのメモリ レイアウトをテンプレート化されたコードでより効果的にする方法について考えていました。私の知る限り、Standard では、クラスのデータ メンバーを宣言順にメモリに配置することを義務付けています。クラスのサイズに不必要に追加するデータ メンバーを揃えるために、コンパイラによってパディングが行われる可能性があります。アイデアは、コンパイル時にデータ メンバー宣言を再配置して、そのようなパディングを最小限に抑えることです。私はいくつかの検索を行いましたが、情報を見つけることができませんでした (ほとんどの場合、人々はコンパイラ ディレクティブのパッキングについて議論していますが、これは私が見ているものとはまったく同じではありません)。
まず、次の (些細なことですが、反復的で醜い) コード ( ideone.com の同じコード) を検討してください(質問はコードの下にあります。遠慮なくスキップしてください)。
プログラム出力:
質問:
- そのようなことを解決するためのよく知られた、コンパイラに依存しない方法はありますか (ブースト、多分)?
- いいえの場合、そのようなことを自動的に行うコンパイラ固有のディレクティブがありますか (GCC のようなデータのミスアライメントなし
__atribute__((packed))
)? - これをより一般的な方法で行うことはできますか (可変個引数テンプレートを使用する可能性があります)?
前もって感謝します!
c - 同じメンバー型を持つ C 構造体は、メモリ内で同じレイアウトを持つことが保証されていますか?
基本的に、私が持っている場合
と私は持ってA a
いますが、C標準((B*)&a)->k
は と同じであることを保証していa.y
ますか?