1

マルチプロセス アプリケーションをマルチスレッド アーキテクチャに移植しています。同じアプリケーションを Windows で実行していますが、非常にパフォーマンスが優れています。

Linux では、pthread ライブラリを使用しています。メモリの競合を避けるために、各スレッドが独自のヒープを持つカスタム ヒープがあります。このカスタム ヒープの実装には mspace を使用しています。ただし、問題は、このアプローチが多くのパフォーマンス オーバーヘッドを引き起こしていることです。mspace のメモリ割り当ては、ネイティブの malloc と比較して非常に低速です。これがボトルネックです。Hoard アロケーターを試してみましたが、それはさらに悪いことです。

パフォーマンスへの影響は、次の理由によるものです。 1. CPU スイッチング: LWP では、通常のマルチプロセスよりも多くのスイッチングが見られます。

Linuxでもパフォーマンスの高いマルチヒープを実現する代替手段はありますか?

4

0 に答える 0