問題タブ [memory-warning]
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.
cocoa-touch - メモリ警告と白い画面
私のユニバーサルiOSアプリは、メモリの警告を受信すると停止します。実際には、デフォルトの動作を実行するだけです。現在表示されているView Controllerはビューを解放し、代わりにアプリウィンドウの下に空白が表示されます。したがって、問題は、このデフォルトの動作を防ぐためにどのような手法を採用する必要があるかということです。
また、キャッシュされたデータや画像などのリソースがメモリにない場合は、何をリリースする必要がありますか?他のビューコントローラのビュー?
ios - UIWebView が大量のメモリを割り当てないようにする
UIWebView に問題があります。このコンポーネントを使用して、iPad/iPhone で通常の Web ページをロードしています。UIWebView は modalViewController で提供されます。一部のページはメモリを大量に消費しており、一部のページには Flash コンテンツも含まれています。
問題は、一部のページでメモリ警告が表示されることがあることです
これが発生し、この modalViewController (webView にページがロードされている) を閉じると、以前のビューが自動的にリロードされます - メソッド viewDidLoad が再び起動されます。
UIWebView の一部のページが大量のメモリを消費し、アプリケーションがそのビューのメモリを解放するよりもクラッシュしないと思われます。
webView のメモリ消費を制限する方法はありますか、またはこのメモリ警告を回避する他の方法はありますか?
ありがとう!
iphone - メモリ警告イベントの前にiPhoneアプリがクラッシュする
メモリのオーバーヘッドが原因でアプリがクラッシュしますが、applicationDidReceiveMemoryWarningイベントが時間内に発生しません。(リソースの読み込み時にクラッシュし、対応するクラッシュレポートがなく、XCodeがデバッグを中断せず、アプリがサイレントにスプリングボードを終了するため、クラッシュの理由がメモリ不足であることを正確に知っています)。
だから私はこのオーバーヘッドを防ぐ方法を探しています。たぶん、利用可能なメモリの量を与える関数または機器がありますか?
memory-leaks - iOSでバックグラウンドアプリを強制終了することは可能ですか?
動画を扱うアプリを作成しました。ご存知のように、ビデオ処理はHD解像度を処理する際に大量のメモリを消費します。私のアプリはいつもクラッシュしているようでした。しかし実際には、コードにメモリリークがないことを100%確信しています。機器は漏れを示していません。
最初は、1つのOpenGLESビューとビデオエンジンを起動しています。非常に短い間、メモリ消費量は多くなりますが、初期化が完了すると通常のレベルに低下します。この期間中、私は常にメモリ警告を受け取ります。通常、これは問題ありません。しかし、一時停止モードで実行しているアプリがたくさんある場合、アプリがクラッシュしているようです。クラッシュログを監視し、デバッガーを使用すると、メモリが不足しているだけであることがわかります。
私の顧客は私のサポートメールを「アプリがクラッシュしています」というメールで溢れさせています。しかし、バックグラウンドで実行されているアプリが多すぎるため、メモリが残っていないことは知っています。アプリを実行する前にバックグラウンドタスクを閉じる必要があると顧客に言うのは悪いスタイルのプログラミングだと思います。
この投稿によると、これは一般的な問題です。
私の質問は次のとおりです。OSに大量のメモリが必要であるため、OSが一時停止中のアプリを終了する必要があることをOSに伝えることはできますか?それは私が修正できるバグではないので、このメモリのものは私を夢中にさせます。
ios - メモリ警告を受信しました。Level=1 - 5 つのタブを持つ UITabBarController アプリケーション
My Application は 5 つのタブで構成されています。そのうちの 4 つは、それぞれに約 20 のテキスト フィールド (プログラムで作成され、サブビューとしてビューに追加されます) を含み、最後のタブは前のタブ (スクリーンショット) のプレビューです。ユーザーがこのタブに移動すると、プレビューが可能になり、プレビューで電子メールをトリガーするオプションが表示されます (4 つのタブすべてのスクリーンショットを電子メールに添付します)。これを正常に実装しましたが、メモリ警告が発生しました。私の問題を解決するために何か助けていただければ幸いです。
私はこの方法でそれを試しました: ビューが表示されていない場合は didReceiveMemoryWarning でオブジェクトを解放しました
viewDidLoad でビューを再度リロードしました。それでも、メモリの警告が表示されます。
iphone - VM トラッカーによる iOS 分析。ダーティ メモリと常駐メモリが原因でメモリ警告が表示されます。どうすればよいですか?
こんにちはコミュニティ、作成していないものをデバッグしようとしています。このアプリはオンラインで動作し、すべてのパス (多くのパス) をメモリに保存するファイル システム上のすべてのコンテンツをキャッシュします (間違ったアプローチが表示されますが、それに取り組む必要があります)。このアプリには、すべてのコンテンツをダウンロードし、メモリを相対パスで埋めるオプションがあります。
問題は、このオプションをオンにすると、アプリがダウンロードとキャッシュを開始しますが、完了する前にクラッシュすることです。もちろん、シミュレーターではすべて正常に動作します。
クラッシュ レポートのログには、jetsam によって強制終了されたメモリの警告とアプリが記載されています。インストゥルメントへの割り当てでアプリを追跡する ライブ バイトは「ちょうど」約 7Mb であることがわかります。これは、ダウンロード中に追加されたフラッシュ メカニズムを使用することによっても助けられ、ダウンロードの終了後に古いパスが解放されます。
目に見える漏れはまったくありません。
VMTracker を使い始めたところ、常駐メモリとダーティ メモリがかなり高く、ピークは 61Mb と 21Mb 前後であることがわかりました。手に入らないものがあります。
私はそれについて多くの質問を読みまし
た 仮想メモリに関連して「ダーティ」と「常駐」は何を意味しますか?
Objective-C の常駐ダーティ メモリを取り除くにはどうすればよいですか?
しかし、他のダーティ メモリの発生元で作成されたほとんどのパスを解放しているのでしょうか。どうすればきれいにできますか?
ありがとう、
アンドレア
uitableview - IOS 5 メモリ警告で、NavigationController の下に空白の TableView が表示される (IOS 4.3 ではない)
iOS5 シミュレーター (およびデバイス) で、NavController とメモリ警告に関する奇妙な問題が発生しています。内部に NavController があり、次に TableViewControl がある TabbarControl があります。tableviewcontrol から ViewControl を提示すると、ActionSheet を表示するボタンが表示されます。アクションシートが表示されているときに、IOS5 でメモリ警告をシミュレートしようとすると、何か問題が発生しました。ViewControl はリロードして正常に表示されますが、VIewControl を閉じて (NavController 内の) TableviControl に戻ろうとすると、2 つ目のタブバー ボタンに変更すると、空白のページ (navBar なし) と 4 つの TabBar ボタンが表示されます。次に、最初のボタンに戻り、通常どおりテーブルをロードします。
この問題は、IOS 4.3 (シミュレータまたはデバイス) では発生しません。
存在するアクションシートの表示方法に依存していると確信していますが、そのビューを表示するためにすべての方法を試しています。
ここにいくつかの画像があります。
iphone - iPhoneデバイスにメモリ警告を手動で送信する方法はありますか?
最近問題が1つあります。画像キャッシュライブラリを使用していますが、正常に動作しますが、最終的にメモリの問題が発生し、アプリが終了します(メモリが不足しているためだと思います)。画像キャッシュライブラリからソースコードを読み取った後、メモリ警告イベントが発生すると、キャッシュされたすべての画像が解放されると言われていることがわかりました(画像は巨大です)。とにかく、メモリ警告イベントを手動で直接デバイスに送信することはできますか?xcodeインストルメントツールを使用してメモリ使用量を評価しています。
ios - iOS アプリケーション - cgcontextref を使用した描画時のメモリ警告
customClass の drawRect メソッドで描画するアプリケーションを開発しています。
ビューのグラフィック コンテキストで線を描画します。setNeedsDisplay を使用して何度も再描画すると、メモリ警告が表示され、アプリがすぐにクラッシュします。
drawRect コードにリークがないかどうかを確認しました。何も見つかりませんでした。メモリ割り当ても大きな違いはありませんでした。
問題は一度修正され、iOS デバイスが再起動されました。しかし、私はクラッシュが再び繰り返されると確信しています。何が問題になる可能性があります。同様の問題に直面した人はいますか?
コードは以下のとおりです。
アップデート:
再び同じ流れでクラッシュが繰り返されました。これは、デバイスを再起動してから 8 時間以上経過した後に発生しました。アプリを 8 時間も使用していません。デバイスを再起動した後、アプリケーションはその特定のフローでまったくクラッシュしません。
objective-c - iPad のメモリ制限
私が取り組んでいるアプリは比較的単純ですが、メモリの警告が表示されます。アプリの設計に必要なメモリが多すぎて、使用量を減らすために再設計して分割する必要があるのか 、それともアプリの設計は問題ないが、アプリ自体が肥大化して必要以上のメモリを誤って飲み込んでいるのかを把握しようとしています.
アプリは一連の質問を含む XML ファイルを Web からダウンロードし、質問コントロールのリストを表示する UIScrollView を生成します。各質問コントロールには、UITextView と UISegmentedControl、UIButton、UITableView、UITextField、または UIButton (カスタム日付コントロール) を備えた 4 つの UITextField があります。スクリーンショットは次のとおりです。
このセットアップは、小さな問題セットには最適ですが、120 を超える問題の大きなセットでは、アプリがメモリ警告をスローし始めます。これは、より大きなセットで割り当てと VM トラッカー インストゥルメントを使用した典型的な実行です。
xml のダウンロードとモデルの読み込み時に割り当てメモリが急増しますが、割り当てメモリが安定するまで警告はスローされません。ただし、VM トラッカーのメモリは、スローされたときにまだ増加しています。これにより、コントロールがまだメモリにロードされており、VM トラッカーが警告の原因となっているメモリの増加のより良い指標であると思われます。通常、常駐サイズが 125 MB を超えると、警告が発生します。Resident のサイズを大幅に下げる 1 つの方法を見つけました。質問コントロールには、丸みを帯びたエッジとドロップ シャドウを与えるカスタム ビューがあります。カスタム ビューから drawRect コード (以下に示す) をコメント アウトすると、割り当てメモリは同じままですが、常駐サイズは約 30 MB 減少し、93 MB を超えることはありません。
インストゥルメントとメモリの警告では、メモリが使い果たされているように見えますが、これらの数値は私には高いように見えます。スクロールビュー内のこれらの質問コントロールが 120 個あっても、iPad が処理するのに問題があるとは思いませんが、どれだけのメモリを消費する必要があるかについての基準フレームはありません。iPad で実行できるグラフィックを多用するゲームのいくつかを考慮すると、上記の単純な drawRect コードが質問コントロールで 30 MB 以上を消費するようには思えません。このメモリ使用量は高いように見えますか?それとも、これは多くのシンプルな UI 要素を持つアプリに期待されることですか? drawRect に多くのメモリを消費するものや、最適化する方法に関する提案はありますか? これで iPad のメモリが使い果たされるように思われる場合は、タブまたはページを作成し、タブまたはページに配置する質問の数を制限して、コントロールの一部のみが一度にメモリに読み込まれるようにします。ただし、iPad がそれらすべてをメモリ内で処理できる必要がある場合は、それらを分割したくありません。どんな入力でも大歓迎です。