Есть ли Сколько стоит обильное использование NSLog?

Как новый программист, я открыл для себя волшебство NSlog и использую его во всем своем коде.Это было чрезвычайно полезно (вместе с NSZombieEnabled ) при отладке.

Я вижу явное снижение производительности симулятора, когда он распечатывает все это. Я не думаю, что вижу подобное на устройствах, но я не уверен.

Так стоит ли оставить все NSLogs в? Он использует больше памяти на устройстве? Или компилятор просто игнорирует их, как комментарии, когда я компилирую для устройства?

РЕДАКТИРОВАТЬ:

Вот что я реализовал согласно предложению rano.

В моем файле App_Prefix.pch я добавил:

// DLog is almost a drop-in replacement for NSLog
// DLog();
// DLog(@"here");
// DLog(@"value: %d", x);
// Unfortunately this doesn't work DLog(aStringVariable); you have to do this instead     DLog(@"%@", aStringVariable);
#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...)
#endif

// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

А затем в моем инспекторе Project Info для конфигурации Debug под заголовком GCC 4.2 - Предварительная обработка, Я добавил значение DEBUG в верхнюю запись под названием Макросы препроцессора.

Работает как чудо - DLog выводит, когда я создаю Debug версию, а ALog выводит всегда.

6
задан Steve 10 November 2010 в 03:15
поделиться