1

malloc が失敗するかどうかを判断する悲観的な方法はありますか。私はこれについて少し心配しています:

デフォルトでは、Linux は楽観的なメモリ割り当て戦略に従います。これは、malloc() が非 NULL を返す場合、メモリが実際に使用可能であるという保証がないことを意味します。システムのメモリが不足していることが判明した場合、1 つまたは複数のプロセスが OOM キラーによって強制終了されます。詳細については、proc(5) の /proc/sys/vm/overcommit_memory および /proc/sys/vm/oom_adj の説明、および Linux カーネル ソース ファイル Documentation/vm/overcommit-accounting を参照してください。

この免責事項を知らなかった場合は、malloc が成功するかどうかだけを確認します。

私の場合、アプリケーションは大きなデータ ブロック (ギガバイト) を割り当てる必要があるため、メモリが制約になります。Gimp は、構成ダイアログを介してユーザーにすべての責任を移します。ソフト上限を推測するものが欲しいです。

4

0 に答える 0