memory-alignment

    12

    1答えて

    私たちの組み込みアーキテクチャでは、64ビットのIAB(Instruction Alignment Buffer)があります。フェッチシーケンスを最適化するには、ループの本体が8バイトの境界に揃えて開始される必要があります。 .balignディレクティブを使用してアセンブリでこれを達成するのは簡単ですが、Cコンパイラがコードを揃えるようにヒントする構文は見つかりません。 forループの前に、.ba

    5

    2答えて

    複数のことを行う必要がある画像処理アプリケーションを作成し、可能な限りリアルタイムで処理する必要があります。 データの取得とその処理は、主にパフォーマンス上の理由から、別々のプロセスで実行されます。データ自体はかなり大きい(2MPixの16ビットグレースケール画像)。 この投稿に記載されているように、プロセス間で配列を共有できます。 How do I pass large numpy arrays

    6

    4答えて

    アプリケーションを32ビットから64ビットにアップグレードすると、オブジェクトのポインタサイズとメモリフットプリントが増加します。 私は可能な限りオブジェクトのメモリフットプリントを減らす方法を探しています。 POD構造体の場合、構造体のメモリレイアウトをダンプして、メンバーをパックし、コンパイラのパディングを減らす方法を理解します。 クラスインスタンスなどの非PODオブジェクトのメモリレイアウト

    1

    2答えて

    最近(this one)、(私は32ビットと仮定している)C/C++ポインタは通常4バイトアライメントされているため、各ポインタの最後の2ビットは常にゼロであると言われました。なぜこれが当てはまるのか分かりません。アドレスを表すために32ビットすべてを使用しないのはなぜですか? 私は上記にリンクした実際の回答のメリットを無視してください。私は2つのLSBに関する観測にのみ興味があります。

    1

    1答えて

    次のコードでコンパイラの警告(警告:キャストによりターゲットタイプの整列が必要になる)を回避する方法を教えてください。 static int fill_color24 (VisVideo *video, VisColor *color) { int x, y; uint32_t *buf; uint8_t *rbuf = visual_video_get_pixel

    4

    1答えて

    私のコードでは、配列の配列を考慮する必要があります。ここで、内部配列は固定次元です。 STLアルゴリズムを利用するには、データを実際に配列の配列として格納するのが便利ですが、データをCライブラリに渡す必要があります.Cライブラリには、平坦なCスタイルの配列が必要です。 多次元アレイを安価にかつ携帯可能に変換(すなわち平坦化)できることは素晴らしいことです。私は非常に単純なケースに固執する、実際の問

    2

    2答えて

    は、CおよびCのための_aligned_mallocのような機能があります++が、私はメモリ内の.NETオブジェクトを整列させるための何かを見つけることができません。

    1

    2答えて

    GCCの下でコンパイルされた私のC++プログラムが(構造体のメンバの)最大4バイトのアラインメントを持つことを望みます。 #pragma packディレクティブでこれを行うことができます。しかし、私の場合はプロジェクトが非常に大きいので不快なので、#pragma packというヘッダーを1つ作成する必要があります。これはどこにでも置く必要があります。さて、gccコンパイラには、-と書かれている-m

    0

    1答えて

    Xcodeでクラスインスタンスのコンパイル時のバイト配列を取得する方法はありますか?ビジュアルスタジオには、クラスレイアウトを出力ウィンドウにダンプするフラグ(/ d1reportSingleClassLayoutXXX、XXXはクラス名)があります。 Xcodeにも同様のフラグ/機能がありますか? LLVMを用いた以外は同様this 。

    4

    2答えて

    スタックを設定するときに、スタックを設定するときに、mainがなぜ3倍の余分なダブルワードを割り当てたのかわかりません(<main+0>)。それは8バイトでも16バイトにも揃えていないので、私が知る限りその理由はありません。私が見ているように、main関数は2つのパラメータと戻り値のために12バイト必要です。 私には何が欠けていますか? プログラムは、x86アーキテクチャ上で "gcc -ggdb