2

私は、TOmniMREW に似たスリムなシングル読み取りマルチ書き込みロックを求めていますが、競合が発生した場合に CPU への負荷が少なくなります。

TOmniREW はスピンロックのみを使用するため、ロックを取得できるまで、スレッドは 100% の CPU 使用率に急増します。

現在、私はクリティカル セクションを使用しており、動作が効率的ではありませんが (ライターよりもリーダーの方が多い)、競合スレッドが CPU 時間を放棄した場合に備えています。

私の場合、競合は非常にまれに発生します。通常は、ライターがより複雑な (長い) 操作をトリガーするときに発生しますが、その場合、スピンロックの CPU 使用率が急上昇します。

Windows SRW の実装は同様の戦略を使用しており、何の助けにもなりません(編集:実際には、競合が激しい場合には約 2 ~ 3 倍高速ですが、それでも問題が発生し ます 編集 2: TOmniMREW は、将来のバージョンで利用可能になると SRW を使用します。速度は同じになります)。

4

2 に答える 2

1

実際、さらにテストを重ねた結果、Windows SRW は CPU を放棄しているように見えます。クリティカル セクション テストで見たよりも、わずかに多くの時間がかかるだけです。

したがって、Windows SRW がその答えです。

于 2013-12-09T13:05:23.980 に答える