問題タブ [xcode-instruments]

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.

0 投票する
1 に答える
1159 参照

iphone - 自動化スクリプトからiOSstdoutの機器にカスタムログを作成する

機器のCLIを使用してテストを自動化しています。

現在、アプリで特定のアクションが完了したら、テストで別のプロセスを開始する必要があります。

つまり、アプリケーションが行うとしましょう

singin->アカウントの作成->更新の投稿->singout

サインアウトが完了したら、アプリのメモリスナップショットを取得します。このスナップショットには、top/psコマンドを使用します。

私がやりたいのは、singoutアクションが完了したら、出力に特定の何かをログに記録することです。例:「一意の文字列.......歌う完全な.....一意の文字列」

別のスクリプトは、ログの出力をチェックし続け、この文字列が発生したかどうかを確認し、発生したときに他のプロセスを開始します。

さて、実際の質問ですが、自動化JavaScriptでconsole.log(string)を実行すると、楽器の標準出力に配置されますか?今なら、どのコマンド(またはAPI)を使用して、stdoudのinstruments CLIにカスタムログを作成できますか?

0 投票する
1 に答える
879 参照

c# - ダイクストラのアルゴリズムと2D配列を使用して、エラーメッセージなしでMonoDevelopデバッガがクラッシュする

私はC#とMonoDevelopを使用してMonotouchでiOSゲームを作成しています。非常に奇妙なクラッシュが発生しています。

背景情報:2Dウォーゲームを作成します。ダイクストラのアルゴリズムを実装して、オブジェクトを間に挟んで出発地から目的地までの最短経路を計算しました(例:ここからそこまで移動しますが、車/木/建物/または途中の何かを自動的に移動します)。私のクラッシュは、ダイクストラのアルゴリズムのこの実装のために作成したバイトの2D配列に関連しているようです。ダイクストラのアルゴリズムについて聞いたことがない場合は、この画像を参照してくださいhttp://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gif

基本的に、2D配列にノードが多いほど、戦場での兵士の動きがより詳細になります。2D配列で2,400ノードを使用すると、すべてが正常に機能/ロードされます。ただし、より詳細な座標のためにノードの数を4,266に増やすと、ノードの距離を計算しているときにプログラムがクラッシュします。クラッシュする前に約30%完了します。

クラッシュの詳細: デバッグ/iPhoneモードまたはリリース/iPhoneモードを使用した場合にのみクラッシュします。Debug / iPhone Simulatorを使用すると、正常に動作します。また、アプリをビルドし、デバッグ/ iPhoneモードを使用して携帯電話に転送し、デバッガーを停止してXCode Instrumentsを開くと、正常に動作します。シミュレーターとXCodeInstrumentsで機能するのに、Monodevelop Debug/iPhoneモードでは機能しない理由がわかりません。XCode Instrumentsは、問題を「パッチ」する何かを行っていますか?それとも、MonoDevelopのデバッガーは、プログラムを「中断」するために何かを実行していますか?

XCodeInstrumentsで動作するプログラムのスクリーンショットは次のとおりです。

スクリーンショットであなたが見ているものを説明させてください。私のアプリは「ウォーゲーム」と呼ばれています。タイムラインを見ると、CPU使用率は約2秒から約35秒まで約100%でした。CPU使用率がゼロに低下すると、読み込みが完了します。したがって、ノードの2D配列をロードし、距離を入力するのに文字通り約33秒かかりました。

クラッシュするこのインスタンスには4,266のノードがあることに注意してください。これは、2D配列がバイト[4266、4266]配列であることを意味します。つまり、2D配列では18,198,756バイトになります。また、XCode Instrumentsで実行すると正常にロードされ、MonoDevelopのDebug /iPhoneSimulatorで実行すると正常にロードされます。しかし、iPhone4sでデバッグ/iPhoneモードで実行すると、エラーメッセージなしでクラッシュします。このアプリのメモリ使用量は、スクリーンショットで見られる約60.73MBです。

クラッシュしないインスタンスでは、2,400ノードがありました。これは、2D配列がバイト[2400、2400]配列であることを意味します。つまり、2D配列では5,760,000バイトになります。そして、それはどこでもうまくいきました。

ノードの数を約4,266以上に増やすと、プログラムがクラッシュすることが明らかに問題のようです。しかし、エラーメッセージは表示されません。読み込み中に突然停止します... これはガベージコレクションの問題でしょうか? その権利についてはエラーメッセージが表示されると思いますか? これは「メモリ不足」の問題でしょうか? しかし、XCodeのInstrumentsを使用してロードすると、使用しているのは60MBのみであり、以前はテストとしてこのアプリで最大150MBを使用したことがあるため、クラッシュする前に少なくとも最大150MBのメモリ使用量を使用できることがわかっています。 「メモリ不足エラー」。

これは、XCodeInstrumentsからのメモリ割り当てのショットです。 これは、XCodeInstrumentsからのメモリ割り当てのショットです。

これは、XCodeInstrumentsからのメモリリークのページのショットです。 これは、XCodeInstrumentsからのメモリリークのページのショットです。

0 投票する
2 に答える
582 参照

instruments - .traceファイルを別の場所に保存します

コマンドラインから計測器を実行しています。私のコマンドでは、を使用して出力パスを指定しました

ただし、上記の場所に保存されているファイルはplistlilesです。.trace(つまり、instrumentscli14.trace)ファイルは、スクリプトを保存するフォルダーに自動的に保存されます。

.traceファイルをカスタムの場所に保存する方法があることを誰かが知っていますか?

ありがとう!

0 投票する
1 に答える
798 参照

ios - UIActivityViewControllerのメモリリーク

次のコードを使用して(ARCを使用して)UIActivityViewControllerを提示しています。

機器「リーク」を使用してiPhoneシミュレータでプログラムを実行します。ビューを表示して[キャンセル]をクリックした後:次の行でリークが発生します(100%):

私は何が間違っているのですか?

0 投票する
1 に答える
236 参照

ios - Xcode Instruments を使用して、ポインターで非ゾンビ オブジェクトの履歴を確認する

現在、Instruments を使用して「メッセージが割り当て解除されたオブジェクトに送信されました」というエラーをデバッグしています。「Zombie Messaged」ダイアログ ボックスから障害のあるオブジェクトの履歴にアクセスできます。

実行時に、正しく割り当て/割り当て解除され、失敗しない同様のオブジェクトを見つけ、そのオブジェクトの履歴を調べて、コール ツリーがどのように見えるかを比較したいと考えています。

そうする方法はありますか?検査したいオブジェクトのポインターの位置を出力できますが、ポインターの位置情報を使用して Instruments でそのオブジェクトの履歴にアクセスする方法はありますか?

を使用してロードされたオブジェクトはNSKeyedUnarchiver、デコード中のオーバーリリースの問題が原因で失敗しているように見えますが、そのように作成されていないオブジェクトは問題ありません。

0 投票する
1 に答える
582 参照

iphone - iPhoneアプリのダーティサイズ

iPhoneアプリでダーティサイズを最小化する方法は?キャッシュイメージを解放しましたが、ダーティサイズを最小化しません。誰かがもっとヒントがありますか?

ありがとう!

0 投票する
1 に答える
394 参照

ios - ViewController の複数のインスタンスが同時に呼び出されると、AppDelegate でアプリがクラッシュする

私は何をやっている ?

  1. 現在、インターネットがない場合にアプリをクラッシュ防止しています。
  2. とりあえずネットアクセスを無効にするためにLittle snitchをインストールしました。
  3. リクエストが行われ、レスポンスが nil の場合、「到達可能性テスト」がトリガーされます。以下のコードの ReachabilityController は、Apple が提供する Reachability クラスの単なるラッパーです。

このコードは他の場所でも機能しますか?

アプリケーションはオンライン リクエストでいっぱいですが、他のビュー コントローラーでこの問題が発生したことはありません。インターネットが利用できない場合は、状態を説明する小さなメッセージが表示されます。

エラーはどこで発生しますか

アプリ デリゲート

エラー

* * * -[ReachabilityController RespondsToSelector:]: 割り当て解除されたインスタンス 0x12a71320 に送信されたメッセージ

ReachabilityController は、エラーの状態を説明する UIAlertView を表示します。アラート ビューが少しの間表示された後、アプリがクラッシュします。

デバッグとインストルメント ?

NSLog (@"%p", 到達可能性); エラーと同じアドレスを記録します。0x12a71320 . 言うまでもなく、このアドレスは実行ごとに異なります。

Instruments の Zombies テンプレートも、Reachability Controller を指しています。

下の画像の「Responsible」セクションの 4 行の白いパッチには、アプリの名前が含まれています。

ゾンビオブジェクト

私は何を期待していますか?

正直なところ、この動作の背後にある理由については、私には手がかりがありません。私はそれが非常に基本的でなければならないと確信しています。

現在のローカル宣言と比較して、「ReachabilityController」を保持するためにプロパティを宣言する必要がありますか?

コード

クラッシュが発生するフラグメント。

ReachabilityController.h

ReachabilityController.m

アップデート:

質問のタイトルを変更

ほんの最近の発見。オンライン サーバーからデータが要求される 3 つのインスタンスがあります。インターネットが利用できないため、3 つの方法すべてがほぼ同時に到達可能性テストを要求します。3 つのすべてのメソッドには、上記のものと同様のメソッド宣言があります。3 つのメソッドはすべて、以下に示す「ローカル宣言」を使用してテストをトリガーします。

0 投票する
2 に答える
257 参照

objective-c - 実際のメモリ使用量を調べる方法

楽器の割り当てを使用してアプリの実際のメモリ使用量を調べたい ここに私の2枚の写真があります

#1

#2

フィルタおよびライブ バイトなしの最初の実行: 14.79 MB

フィルタ CF、Malloc、CG、CA タイプおよび Live Bytes を使用した 2 回目の実行: 40.94 KB

どちらが実際のメモリ使用量です。これを見つける方法以外にない場合、それが問題かどうかはわかりませんが、すべてがシミュレーターで実行されます

0 投票する
4 に答える
4111 参照

instruments - UIAutomation logElementTree() は UIAElementNil を返します

このコード行を Instruments UIAutomation の logElementTree() に使用すると、 target.frontMostApp().mainWindow().logElementTree();

結果の戻り値はUIAElementNil

スクリプトを記録して画面をタップしても、記録される行はtarget.frontMostApp().tap();

0 投票する
1 に答える
437 参照

javascript - Excelシートから機器UIAutomationにデータをインポートできますか?

2つのフィールドがある画面のスクリプトを作成し、それらのフィールドの値のさまざまな可能性をテストして、次の画面に移動するかどうかをテストします。ただし、これらのフィールドに入力するデータの組み合わせが大きすぎます。では、データがすでに保存されているExcel /その他のファイルからデータをインポートできますか?