こんにちは、
いわゆるメモリ最適化ツール(PCマネージャーを含む)はメモリ使用を改善することはできませんが、むしろ悪化させる可能性があります。「メモリ不足」エラーが出る場合は、プログラムの動作に問題があるかページファイルサイズが不足していることを意味します。
タスクマネージャーを実行し、パフォーマンスタブに行き、「メモリデータ」を選択し、「メモリ不足」エラーが出たらスクリーンショットを表示してください。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
OS:Windows10で作成したソフト(カメラから画像を取り込み表示し続ける)を長時間(365/7/24)加増させています。OSがメモリを蓄えつづけ、6-7日ぐらいで利用可能メモリが0GBになってしまい、カメラの接続が切れてしまっています。(メモリは64GB搭載)
現在、一日あたり、10GBぐらいづつメモリ利用可能値が減っています。(9:00-18:00は3GBぐらい夜間(18:00-翌9:00)に8GBぐらい減っています。)そこで、PCManagerを使って、定期的にメモリ開放をさせて長く使えるようにしたいです。
OSのキャッシュを定期的に解放させて、空き容量を増やそうとPCManagerを見つけて入れてみました。ただ、PCManagerを使ってもあまりメモリ開放がされていないようです。(定期的に3-4GBぐらい回復)
Windows11にはブーストボタンがあり、これを実行するとかなり数GB空きメモリができました。(他のPCで実施)自動開放では、あまりメモリ開放ができないのでしょうか。
OSがためているキャッシュを解放させ、メモリ不足にならず長時間稼働させるのに有効なソフト(メモリ開放)や方法等は無いのでしょうか。
よろしくお願いします。
モデレーター注:
質問内容から判断してタグを「Windows での開発 | インターネット インフォメーション サービス」→「 家庭向けWindows | Windows 10 | アプリ」に変更しました。
こんにちは、
いわゆるメモリ最適化ツール(PCマネージャーを含む)はメモリ使用を改善することはできませんが、むしろ悪化させる可能性があります。「メモリ不足」エラーが出る場合は、プログラムの動作に問題があるかページファイルサイズが不足していることを意味します。
タスクマネージャーを実行し、パフォーマンスタブに行き、「メモリデータ」を選択し、「メモリ不足」エラーが出たらスクリーンショットを表示してください。
OS:Windows10で作成したソフト(カメラから画像を取り込み表示し続ける)を長時間(365/7/24)加増させています。OSがメモリを蓄えつづけ、6-7日ぐらいで利用可能メモリが0GBになってしまい、カメラの接続が切れてしまっています。(メモリは64GB搭載)
この質問がもしかして、あなたが独自に作成したソフトということであれば、元々のソフトの設計方針や発想、構造は悪いのだと思います。
OSがためているキャッシュを解放させ、メモリ不足にならず長時間稼働させるのに有効なソフト(メモリ開放)や方法等は無いのでしょうか。
そもそも PCManager はその様な目的を達成するツールではありません。
その様なOSのキャッシュを制御するアプローチではなくて、根本的に表示が終わったメモリーを、順番に解放する機能を、そのソフトに組み込めばよいだけだと思います。今は、その様なメモリー解放の不備やメモリーリークを修正するツールは多数あります。手近なところでは、Copilot にコード修正を手伝って貰えば良いかと思います。
アドバイスとしては、例えばカメラが10台付いていて動作同時動作する場合、そのソフトがどの様な動作をするべきかをあらかじめ想定しておくことです。メモリー解放をOSやツール任せにするのではなく、画像取得&表示用メモリー取得をしたソフト自身が、最後の解放まで管理するべきです。
注:誤記訂正済
小泉 茂
あなたのツールがメモリリークを発生させているようです。ハンドルを含むすべてのメモリ使用形態を確認してください。
チャブーンです。
この件ですが、以下の状況から
残念ながら「メモリ不足」のエラーは何も表示されませんでした。状況は、カメラで画像をとり続けていくと、OSのキャッシュと思われるところが増えていきます(PerfMonツールを使用したところ、__Memory Committed Byttes__が急角度で右肩上がりしていました。)。そしてある時点(瞬間は見ていません)でカメラが未接続となり空きメモリが増加していました。(確認した時の状況です)。
他の方のコメント通り、プログラムのメモリ管理に問題があることは明らかです。アプリケーションのコード修正を強くお奨めします。もしC#で作っているというのであれば、こういった一般的な確認事項もありますので、参考にしてください。
なにがなんでもコードは変えたくないという場合ですが、RAMMapを使うという方法はあり得るでしょう。Sysinternalが提供しているメモリツールで、メモリ解放を含む監視や調整ができるツールです。メモリ解放がコマンドで可能なことを確認して、Windowsタスクで定期実行するといった建付けになるでしょう。入手方法や使い方はネットで検索いただくといいと思いますが。例えば以下のようなページもありますね。