問題タブ [scratch-memory]

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.

0 投票する
1 に答える
1384 参照

c++ - スレッドローカルメモリ、cスタイルのスクラッチメモリ用のstd::stringの内部バッファを使用

私はProtocolBuffersOpensSSLを使用して生成し、HMACを使用してから、CBCが2つのフィールドを暗号化して、セッションCookie(同様のKerberosトークン)を難読化します。

ProtocolBuffersのAPIはstd::stringsと通信し、バッファキャッシングメカニズムを備えています。同じスレッドでの連続した呼び出しに対して、スレッドローカルメモリに配置することにより、キャッシュメカニズムを利用します。さらに、OpenSSLHMACとEVPCTXも同じスレッドローカルメモリ構造に配置されます(スレッドローカルメモリを使用する理由と、単一スレッドでも可能になる大幅な高速化の詳細については、この質問を参照してください)。

これらのCookie文字列の生成と逆シリアル化「myalgorithms」は中間void *のsとstd::stringsを使用し、Protocol Buffersには内部メモリ保持メカニズムがあるため、「myalgorithms」にこれらの特性が必要です。

では、一般的なスクラッチメモリを実装するにはどうすればよいですか?std :: stringオブジェクトのrdbuf(streambuf --strinbuf ??)についてはよくわかりません。おそらく、「私のアルゴリズム」の実行中にこれまでに遭遇した最小の一般的なサイズにそれを拡大する必要があるでしょう。考え?

私の質問は次のようになります。「文字列の内部バッファは再利用可能ですか。再利用できる場合は、どのように使用しますか?」

編集(新しい質問):

Vladの投稿後、std::stringとvoid*cスタイルのスクラッチバッファが必要であることが反映されているようです。私の質問は次のようになります:人気のあるstlの文字列実装は、メモリを必要としないときにメモリを保持しますか?(私のニーズはおそらく128バイトから10KBの間にとどまるでしょう)。

0 投票する
4 に答える
990 参照

c - C からスクラッチ パッド メモリにアクセスする

それは少し風変わりな問題かもしれませんが、誰かが私を少し助けてくれることを願っています;)。標準 C プログラムを実行したいのですが、プログラム実行中のある時点で、ローカルのスクラッチ パッド RAM に保存されている特定の数の命令を実行したいと考えています。すべてのプロセスでスクラッチパッド メモリにアクセスできます。このローカル メモリがアドレス 0x80000000 から始まると仮定して、これを次の C コード フラグメントに統合します。

}

main が 0x40000000 にロードされていると仮定すると、プログラム カウンターは次の段階を経ます。

これを行う方法を知っている人はいますか?アセンブラのジャンプ命令を使用する必要がありますか、それとももっとエレガントなものがありますか。

どうもありがとう、アンディ