|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
Пустые дебаг методы vs полное выпиливание с проекта26.01.2017, 20:57. Показов 2951. Ответов 48
Метки нет (Все метки)
Добрый вечер,
Моё мнение: если макрос - то особо не поиграться с шаблонами и отсутствие статического проверки типа если методы пустышки - то будет ли создаваться под них стек и вызов, или компилятор с оптимизирует всё это дело?
0
|
||||||
| 26.01.2017, 20:57 | |
|
Ответы с готовыми решениями:
48
Пустые методы в перечислении java.util.concurrent.TimeUnit Выпиливание экземпляра класса самим собой |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 26.01.2017, 21:36 | ||
|
1
|
||
|
Ушел с форума
|
|
| 26.01.2017, 21:55 | |
|
Лично мне больше нравится подход Log1: проверки типов остаются, функции и методы никуда
не исчезают и можно особо не волноваться на счет случайных побочных эффектов, которые после таких удалений вдруг могли бы возникнуть. Перфоманс если и страдает, то очень незначительно. В большинстве случаев компилятор будет просто выбрасывать пустые вызовы. На счет вызова функций из других единиц трансляции - здесь тоже есть возможность оптимизации, например MS C/C++ Compiler такое умеет делать и делает достаточно давно.
1
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 26.01.2017, 22:43 | |
|
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 26.01.2017, 22:45 [ТС] | |
|
hoggy, не пойму о чём вы)
0
|
|
|
Любитель чаепитий
|
|
| 27.01.2017, 05:44 | |
|
ИМХО, что как-нибудь так лучше смотрелось бы:
LOG(DBG) << "open file"; LOG(ERR) << "can't open file"; LOG(WRN) << "empty data"; И т.д. Возможно, что об этом и говорит господин hoggy, но это не точно!
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 27.01.2017, 10:04 | ||
|
Можно написать программу которая просто перед продакшеном пройдется по всем файлам проекта, откроет эти файлы и сделает replace вызовы log на пустую строку и не придется уродовать код #if !defined(PRODUCTION) - ами при сложных записях можно воспользоваться регулярными выражениями либо тупо копипастить себе куда нибудь в файлик эти сложные записи и реплейсить их когда придет время
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||
| 27.01.2017, 11:03 | ||||||||||||||||||
|
однако в режиме выключенных логов, у вас тут получится передача данных в методы-пустышки. что в общем то не бесплатно и совершенно напрасно.
даже очень затратные проверки и не бояться за производительность. ведь в релизе все что под ассертом будет выпилено из компиляции. вот точно так же и с логами. при отключении логов, не должно быть издержек на подготовку и транспортировку исходных данных
зачастую ещё нужно сформировать логируемый текст на основе исходных данных:
которая будет дергать кучу всяких геттеров, запрашивать исходные данные, переводить числа в строки и тд, и если логи выкл, то получим совершенно бесполезные траты на ровном месте. а так - макрос схлопнулся, и никаких затрат.
4
|
||||||||||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 27.01.2017, 11:39 | ||
|
Вообще, то чем вы сейчас занимаетесь нужно делать с помощью Unit тестов. И проблем таких не будет.
И профит от наличия тоестов будет большой, если программуля серьезная. Логи как раз таки больше нужны в продакшене а не в девелопменте Добавлено через 8 минут
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 27.01.2017, 11:50 | ||||
|
все что в скобочках макроса превратится в пустоту (не войдёт в компиляцию)
1
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 27.01.2017, 11:55 | |||
|
0
|
|||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||||
| 27.01.2017, 12:20 [ТС] | |||||||
|
Добавлено через 5 минут
compact
0
|
|||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 27.01.2017, 12:46 | ||
|
1
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||
| 27.01.2017, 12:57 | |||||
|
область применения дебажных логов такая же, как и у обычных ассертов. \ Добавлено через 57 секунд
0
|
|||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 27.01.2017, 13:33 | |||
|
По сути лог это сохранение определенного действия для дальнейшего его анализа (например, не удалось занять порт на определенной машине просто потому что его занял кто-то другой). На машине девелопмента такая информация не очень полезна. Я об этом, логи решают приблизительно такие задачи. Что касается отладки, то для этого придумали отладчик Если же что-то касается проверки работоспособности системы, особенно если есть много взаимодействий между разными компонентами, с этим насколько я понимаю и связан вопрос автора, для этого как правило пишут юнит тесты которые могут существовать как независимый проект более того, при расширении функционала достаточно будет просто запустить тест 1 раз и понять, слетело ли что в результате правок то есть почти тоже самое только как отдельный независимый проект, и более подходящий для решения подобных задач Добавлено через 9 минут
0
|
|||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||
| 27.01.2017, 14:06 | |||
|
Добавлено через 1 минуту
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 27.01.2017, 14:13 | ||
|
А баг означает что в программе есть кривизна. Тут уже нужны прямые руки и хороший отладчик, и не помешает автоматизация проверок на баги, что и было предложено в качестве юнит тестов...
0
|
||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 27.01.2017, 14:49 | ||
|
Да, логи, в первую очередь, отражают состояние системы. Но не всегда пользователя интересуют подобные сведения. А вот для отладки они всегда могут быть полезны.
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 27.01.2017, 15:41 [ТС] | |
|
0
|
|
| 27.01.2017, 15:41 | |
|
Помогаю со студенческими работами здесь
20
Посоветуйте методы раскрутки для белого проекта Дисковод не читает пустые dvd-r/rw и пустые cd-rw диски. дебаг Дебаг процедуры
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|