私のアプリにはNSLog
がたくさんあります。その中には大量のデータを印刷するものがあります。つまり検索結果です。これは私のアプリのスピードに大きな違いをもたらしますか?NSLogはアプリを遅くしますか?
私はマクロに精通していません - 誰かがすべてのNSLogを有効/無効にするものを提案できますか?
私のアプリにはNSLog
がたくさんあります。その中には大量のデータを印刷するものがあります。つまり検索結果です。これは私のアプリのスピードに大きな違いをもたらしますか?NSLogはアプリを遅くしますか?
私はマクロに精通していません - 誰かがすべてのNSLogを有効/無効にするものを提案できますか?
はいNSLog
は、同期性のためにアプリの速度が低下する可能性があります。生産は、それらを最小化しようとするために、あなたのアプリがある場合は、すべてのNSLog
#ifdef DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...)
#endif
MY CURRENT PREFIX.PCH FILEからDLog
のようなものを使用してください。リリースビルドのログは無効になります。 Thisは、リリースビルドにNSLog
を保存しない理由の素晴らしい説明です。
を切り替えるには 。エラーまたは警告の可能性があるものだけを残しておきます。あなたがデバッグを助けるためにそれらを使用した場合は、それらを削除することをお勧めします。
はい!あまりにも多くのNSLOgsは間違いなくあなたのアプリを遅らせるでしょう。私は通常私の.PCHでこれを追加するベストプラクティスとして
(コンパイルヘッダファイルをプリ)
#ifdef DEBUG
#define DebugLog(f, ...) NSLog(f, ## __VA_ARGS__)
#else
#define DebugLog(f, ...)
#endif
だけでデバッグターゲットのビルド設定であなたのプリプロセッサマクロでDEBUGを可能にしました。 NSLog()の代わりにDebugLogを使用します。
あなたのディストリビューション/リリースではDEBUGが定義されていません。だからあなたのアプリは分散アプリのログに何も印刷しません。
確かにNSLogはあなたのアプリを遅らせることができます。どのくらい深刻なのは明らかにマクロの使用量によります。ほとんどの人は、コンパイルフラグまたはランタイムスイッチのいずれかでオン/オフを切り替えることができるマクロのバリエーションを使用します。 –