Мне интересно, какие накладные расходы связаны с наличием неиспользуемых функций в вашем коде.
Скажем, например, у вас есть журнал отладки, а затем вы передаете большую часть своих объектов функция ToString(), которая используется в журналах отладки.
В выпускной сборке ведение журнала отладки не используется. Стоит ли тогда удалять исходный код этих функций ToString()? (например, с помощью макроса?)
Или они просто делают исполняемый файл немного больше и в остальном не влияют на производительность? например нет влияния скорости? Или компилятор или компоновщик может даже удалить функции, если они не используются? Если компилятор или компоновщик не удаляет код, что, если функции ToString() были определены в строке? Предположительно, он попытается встроить код, и, поскольку функция никогда не вызывается, она исчезнет?
Я предполагаю, что каждую функцию нужно сохранять в статической библиотеке, но после компиляции в исполняемый файл наверняка многие вещи просто игнорируются компоновщиком?
С другой стороны, это примерно то же самое, если компилятор решает не встраивать встроенный файл функция, так что встроенная функция определена как функция в нескольких модулях компиляции, будет ли компоновщик удалять лишние определения и связывать только одно из них в конце?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/613 ... nused-code
Накладные расходы в неиспользуемом коде ⇐ C++
Программы на C++. Форум разработчиков
1730936606
Anonymous
Мне интересно, какие накладные расходы связаны с наличием неиспользуемых функций в вашем коде.
Скажем, например, у вас есть журнал отладки, а затем вы передаете большую часть своих объектов функция ToString(), которая используется в журналах отладки.
В выпускной сборке ведение журнала отладки не используется. Стоит ли тогда удалять исходный код этих функций ToString()? (например, с помощью макроса?)
Или они просто делают исполняемый файл немного больше и в остальном не влияют на производительность? например нет влияния скорости? Или компилятор или компоновщик может даже удалить функции, если они не используются? Если компилятор или компоновщик не удаляет код, что, если функции ToString() были определены в строке? Предположительно, он попытается встроить код, и, поскольку функция никогда не вызывается, она исчезнет?
Я предполагаю, что каждую функцию нужно сохранять в статической библиотеке, но после компиляции в исполняемый файл наверняка многие вещи просто игнорируются компоновщиком?
С другой стороны, это примерно то же самое, если компилятор решает не встраивать встроенный файл функция, так что встроенная функция определена как функция в нескольких модулях компиляции, будет ли компоновщик удалять лишние определения и связывать только одно из них в конце?
Спасибо
Подробнее здесь: [url]https://stackoverflow.com/questions/6137573/overhead-in-unused-code[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия