同じライブラリ内のすべてのルーチンでコードのパフォーマンスを向上させることは可能ですか?
または、言い換えると、コードの一部を別のライブラリに移動すると、コードのパフォーマンスが低下しますか?
同じライブラリ内のすべてのルーチンでコードのパフォーマンスを向上させることは可能ですか?
または、言い換えると、コードの一部を別のライブラリに移動すると、コードのパフォーマンスが低下しますか?
質問、あなたのプログラムは 1 回だけ実行されますか、それとも頻繁に実行されますか?
前者の場合、共有ライブラリがメモリ内にないと仮定すると、はい、静的バイナリのパフォーマンスがわずかに向上しますが、それも数ミリ秒だけです。
ほとんどの場合、libc または msvcrt (Windows の場合) に対してリンクしている場合、それらは既にメモリ内にあり、巨大なバイナリを保持する以外にあまり保存されません。
後者のケースを考えてみましょう...パフォーマンスの向上は、静的にビルドして巨大なバイナリを作成する価値があるとは思いません。アプリケーションが共通の共有ライブラリ (または DLL) を使用している場合、それらのライブラリはすべて既にメモリに読み込まれています。
それが役立つことを願っています。
追加の応答については、こちらを参照してください。静的対動的ライブラリのパフォーマンス。