問題タブ [recycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android:一時的なビットマップで「リサイクルされたビットマップを使用しようとしています」エラー
私のアプリは非常に大きな画像をロードできます。メモリを節約するために、一時的なビットマップを使用してロードし、別のビットマップを変換後の最終画像に使用しようとしています。
これで、この時点でtempBitmapが完了しました。これは、デコードされたビットマップをcreateBitmapの変換ステップに転送するためにのみ必要でした。それで:
そして...特にtempBitmapのリサイクルが原因で、「リサイクルされたビットマップを使用しようとしています」というエラーでクラッシュします。tempBitmapは表示されず、そこでのみ使用されます。
ここで何が問題になっていますか?全体で「finalBitmap」を使用し、それを管理するためにcreateBitmapに依存する必要があります(finalBitmap = Bitmap.createBitmap(finalBitmap、....))?そのような失敗を引き起こすであろうtempBitmapへの継続的な依存関係が何であるかを私は見落としています。
編集:はい、null割り当ては適切な、最終的なガベージコレクションをもたらすようですが、この場合、一時ビットマップのrecycle()がなぜそれほど問題になるのかについて私は不思議に思っています。createBitmap()がそれへの参照を保持しているという印象を受けますが、なぜ、そしてどのくらいの期間ですか?
android - Androidビットマップリサイクル
ビットマップのリサイクルに問題があります。グリッドビューでビットマップを表示しています。私は約40-50のサムネイルを持っています。サム画像をURLからダウンロードすると、ディスクにキャッシュされました。ImageViewにビットマップを設定し、bitmap.recycle()を呼び出します。しかし、リサイクルされたビットマップは使用できません。
何が起こっているのかについてのアイデア。ご協力いただきありがとうございます。ImageAdapterのgetView()で「convert-view」を再利用しています
よろしく-チャンドゥ
asp.net - ASP.NETセッションのリサイクル
ASP.NET Webサイトでは、セッションをSQLServerに格納しています。セッションが頻繁にリサイクルされることを除いて、すべてが正常に機能しています。タイムアウト期間を30分に設定しましたが、数分以内にリサイクルされる場合があります。専用サーバーと、「クラシック」アプリケーションプールの下で実行されるWebサイトがあります。私はこの問題についてたくさん調べましたが、満足のいく答えは見つかりませんでした。どんな助けでも大歓迎です。
注:ほとんどの場合、ビューステートが多く使用されているページで発生します。ビューステートとセッションのリサイクルのリンクがあるのでしょうか。
android - アダプターでのビットマップの遅延読み込みに関するコンセンサス (Bitmap.recycle() の強調)
これについてはトラックいっぱいの提案がありますが、(私が見つけた) すべての要因を考慮しているものはありません。要因は次のとおりです。
- 非同期ダウンロード、(ダウンローダーとビットマップの)重複なし、ダウンロードのキャンセル/不要になった画像の割り当て
- アダプターは、同じ ID に対して複数のビューを持つことができます (getView(0) への呼び出しは非常に頻繁です)。
- ビューがリサイクルされる代わりに失われないという保証はありません (List/GridView のサイズ変更またはテキストによるフィルタリングを検討してください)。
- ビューとデータ/ロジックの分離 (可能な限り)
- ダウンロードごとに個別のスレッドを開始しない (目に見える UI のスローダウン)。キュー/スタック (LinkedBlockingQueue?) とスレッド プールなどを使用しますが、アクティビティが破棄された場合はそれを終了する必要があります。
- リスト/グリッド内の現在の位置から十分に離れたビットマップをパージします。メモリが必要な場合にのみ実行することをお勧めします
- 破棄されるすべてのビットマップで recycle() を呼び出します。
- 外部メモリは (常に、または常に) 利用できない可能性があり、使用している場合は、(ここでダウンロードした画像のみ) できるだけ早く消去する必要があります。Android によるアクティビティの破棄/再作成も検討してください。
- 変更中のデータ: エントリが削除され (リストで選択、削除するボタン、即時更新)、バックグラウンド スレッドに追加されます (必要に応じてリストが更新されます)。ダウンロード済みのビットマップは、リンク先のエントリがまだ存在する限り保持する必要があります。
- (オプション) 単一の ImageView を更新するために、notifyDataSetChanged (これは、目に見える、潜在的に非常に複雑なリスト項目をすべて更新します) に依存しないでください。
- setTextFilterEnabled(true) (ArrayAdapter と同様。Filterable の実装は、他の Adapter メソッドに表示されるデータ配列を置き換えるため、ビューのインデックスが変更されるため、ビットマップにリンクするための ID として使用できません)。
- ExpandableList で使用可能 (サムネイルが表示される順序に影響します)
これが答えられていたら、私を許してください。何ヶ月も検索しましたが、解決策が見つかりませんでした。
要件は私には妥当に思えますが、それぞれに難しさの次元が追加されます。特に、操作中およびアクティビティの破棄時に呼び出す必要がある Bitmap.recycle が追加されます (onDestroy、さらには onStop が呼び出されない可能性があることに注意してください)。
これにより、他のいくつかの点を処理できた可能性のある SoftReferences に依存することもできなくなります。
はい、必要です。そうしないと、(制御されたメモリ不足の状況を強制するために) try-catch で gc、スリープ (20 秒、偶数)、yield、巨大な配列割り当てを何度行っても OutOfMemoryError が発生します。
「OutOfMemoryError: ビットマップ サイズが VM の予算を超えています」または「android ビットマップ リサイクル」を検索します。
はい、ビットマップをリサンプリングしています。
asp.net-mvc - 大規模なアプリの展開でアプリ プールのリサイクルの問題をどのように解決していますか?
現在、アプリ (58 プロジェクト、大規模な asp.net MVC 3 フロント エンド) のビルド/デプロイ後、「アプリ プールのリサイクル」(リリース構成) 全体を通過するため、読み込みに約 15 ~ 20 秒かかります。
それが人々の答えを変えるなら、私たちはウェブファームを持っていますが、実際の問題は次のとおりです。
デプロイ後のアプリ プール リサイクルの最初の「最初のヒット」を最小限に抑えるために、メンテナンス ウィンドウが実行できない大規模なアプリケーション (私たちは 24 時間 365 日非常にアクティブな Web サイトです) で人々は何をしていますか?
その起動時間を分析するために多くのツールを使用しましたが、それを下げる方法は実際にはないようです。ユーザーに影響を与えるアプリケーションの展開。
android - Bitmap.recycle()に重点を置いた、アダプタ内のビットマップの非同期ダウンロード
誰かが非同期のための良いメカニズムを作る方法を教えてもらえますか?ListView / GridViewで使用する画像をダウンロードしますか?多くの提案がありますが、それぞれが典型的な要件の小さなサブセットのみを考慮しています。
以下に、私と同僚が一度に満たすことができないいくつかの合理的な要因(要件または考慮すべき事項)をリストしました。
私はコードを求めているのではなく(歓迎されますが)、説明されているようにビットマップを管理するアプローチだけを求めています。
- ダウンローダーやビットマップの重複はありません
- 不要になった、または自動的に削除される可能性のある画像のダウンロード/割り当てのキャンセル(SoftReferenceなど)
- 注:アダプターは、同じIDに対して複数のビューを持つことができます(getView(0)の呼び出しは非常に頻繁です)
- 注:ビューがリサイクルされる代わりに失われないという保証はありません(List / GridViewのサイズ変更またはテキストによるフィルタリングを検討してください)
- ビューとデータ/ロジックの分離(可能な限り)
- ダウンロードごとに個別のスレッドを開始しない(UIの目に見える速度低下)。キュー/スタック(BlockingQueue?)やスレッドプールなどを使用しますが、アクティビティが停止した場合はそれを終了する必要があります。
- リスト/グリッド内の現在の位置から十分に離れたビットマップをパージする(できればメモリが必要な場合のみ)
- 廃棄されるすべてのビットマップでrecycle()を呼び出します。
- 注:外部メモリは(常にまたは常に)使用できない場合があります。使用する場合は、(ここでダウンロードした画像のみを)できるだけ早くクリアする必要があります(Androidによるアクティビティの破棄/レクリエーションを検討してください)
- 注:データは変更できます:エントリは削除され(複数選択と削除)、追加されます(バックグラウンドスレッドで)。リンク先のエントリがまだ存在する限り、ダウンロード済みのビットマップは保持する必要があります。
- setTextFilterEnabled(true)(ArrayAdapterのメカニズムに基づく場合、配列インデックスに影響します)
- ExpandableListで使用可能(サムネイルが表示される順序に影響します)
- (オプション)ビットマップがダウンロードされたら、関連するImageViewのみを更新します(リスト項目は非常に複雑な場合があります)
個別のポイントに対する回答は投稿しないでください。私の問題は、いくつかの側面に焦点を合わせるほど、他の側面がより曖昧になり、ハイゼンベルグのようになることです。
それぞれが難易度の次元を追加します。特にBitmap.recycleは、操作中およびアクティビティの破棄時に呼び出す必要があります(onDestroy、onStopでさえ呼び出されない場合があることに注意してください)。
これにより、SoftReferencesに依存することもできなくなります。
必要です。または、ビットマップをnullにした後、try-catch(制御されたOutOfMemoryを強制するため)でgc、sleep(20s、偶数)、yield、および巨大な配列割り当てをいくつでも実行した後でもOutOfMemoryErrorが発生します。すでにビットマップ
をリサンプリングしています。
iis-7 - 最後にリサイクルされたアプリ プールを確認する方法
前回アプリ プールをいつリサイクルしたかを確認できますか。アプリ プールが最後にリサイクルされた日付を確認したいのですが、IIS でこの情報を取得できるものはありますか。
asp.net-mvc-3 - Application_End の呼び出しが早すぎる/頻繁
に配置されているプロジェクトで一時データベースを使用していますApplication_End
:
問題は、Web プロジェクトを閲覧しているときに Application_End が頻繁に呼び出されるように見えることです。データベース内のオブジェクトを編集すると、変更が正常に行われ、データベースが破棄され、リダイレクトされるまでにインデックス - 新しいデータベースが作成され、何も起こらなかったかのように変更されていないオブジェクトが表示されます。
Application_End は、セッションが終了したとき、または一定のアイドル時間の後にのみ呼び出されるべきではありませんか?
アプリケーションの使用が実際に終了したときにのみ Application_End が呼び出されるようにする方法を誰か教えてもらえますか?
iis - MoodleIISクラッシュ
Moodle 2.1、PHP v5.3、Windows Server 2008 R2、IIS、MySQL、3GB RAM、4CPUのフレッシュインストールがあります。私は学校のVLEとしてMoodleを使用していますが、最近、Moodleが応答しないという問題が発生しています(ブラウザが座ってロードされるだけで、最終的にサイトへのネットワーク接続エラーが発生します)。ここで、IISで「サーバーの管理」を再起動すると、問題は修正されますが、数日後に再び発生します。一部の人々は、この問題を遅らせるように思われるプールの「リサイクル」時間を増やすことを提案しましたが、それは再び頻繁に起こり始めています。
私はMoodleフォーラムを試しましたが、行き止まりになりました。誰か助けてもらえますか?ありがとうございました
android - ビットマップ アイス クリーム サンドイッチをリサイクルして強制的に閉じる
私の ondestroy メソッドでは、使用したすべてのビットマップをリサイクルしてメモリを解放し、画面の回転中にアプリがクラッシュしないようにします。これは、アイス クリーム サンドイッチ (Android 4.0) まで、すべての API で正しいことであることが証明されています。現在、ICS をローテーションすると強制的に閉じられ、logcat は役に立ちません。コードまでさかのぼることはできませんが、ビットマップのリサイクルを削除すると、ICS でうまく機能します。これに関するアイデアはありますか?