マルチプロセス アプリケーションをマルチスレッド アーキテクチャに移植しています。同じアプリケーションを Windows で実行していますが、非常にパフォーマンスが優れています。
Linux では、pthread ライブラリを使用しています。メモリの競合を避けるために、各スレッドが独自のヒープを持つカスタム ヒープがあります。このカスタム ヒープの実装には mspace を使用しています。ただし、問題は、このアプローチが多くのパフォーマンス オーバーヘッドを引き起こしていることです。mspace のメモリ割り当ては、ネイティブの malloc と比較して非常に低速です。これがボトルネックです。Hoard アロケーターを試してみましたが、それはさらに悪いことです。
パフォーマンスへの影響は、次の理由によるものです。 1. CPU スイッチング: LWP では、通常のマルチプロセスよりも多くのスイッチングが見られます。
Linuxでもパフォーマンスの高いマルチヒープを実現する代替手段はありますか?