0

重複の可能性:
アプリケーションをリリースする前にNSLogを無効にする必要がありますか?

私のiPhoneアプリには20以上のクラスがあります。NSLogを使用して非常に多くの値を印刷しているところです。シミュレーターでアプリを実行すると、NSLog(特にNSDataなどの印刷)が原因で少し低くなります。

ipaファイルを作成した後、アプリを終了してデバイスで実行すると遅くなりますか?または、クラスのすべてのNSLogにコメントする必要がありますか?

4

3 に答える 3

5

はい、そうです。自分で確認したい場合は、割り当てを使用してプロファイリングを行い、何がメモリの多くを占めているかを確認してください。NSLogsも表示されます。

于 2013-01-30T09:33:43.467 に答える
1

NSLogの代わりに、どこでもDLogを使用してください。テストとデバッグを行うと、デバッグメッセージが表示されます。ベータ版または最終リリースをリリースする準備ができると、これらのDLog行はすべて自動的に空になり、何も出力されません。このように、変数の手動設定やNSLogのコメントは必要ありません。ビルドターゲットを選択すると、それが処理されます。

于 2013-01-30T09:31:55.380 に答える
0

NSLogは、ブロックしてIOを引き起こすため、速度に影響します。現在のスレッドで同期的に実行されます。より良いのは非同期です!--ココアランバージャックのDDLogのように、ブロックされない代替品のドロップです。[それでもIOを引き起こす可能性があります。レベルに関する次の情報を参照してください]


また、DDLogはログレベルを認識しています。EG情報、警告とエラー:リリースモードでは、デフォルトでエラーに設定します(ただし、UserDefault値を使用して変更できます!)

警告と情報はログに記録されないため、オーバーヘッドはごくわずかです。


DDLogはlog4jに似ていますが、objC用です。

于 2013-01-30T09:40:21.650 に答える