Оглавление
Устранение мертвого кода
-
Оптимизация компилятора для удаления мертвого кода
- Удаление мертвого кода уменьшает размер программы и использование ресурсов.
- Мертвый код включает недоступный код и код, влияющий только на мертвые переменные.
-
Примеры мертвого кода
- В примере на C переменная b не используется после первого присваивания и может быть удалена.
- Если бы функция имела более сложный поток управления, присвоение b могло бы быть выполнено.
- Функция возвращает статическое значение, которое может быть упрощено до константы.
-
Методы и уровни устранения мертвого кода
- Компиляторы могут удалять инструкции, которые не могут быть выполнены, и не резервировать место для неиспользуемых переменных.
- Более высокий уровень может удалять инструкции или функции, которые не служат цели.
- Устранение мертвого кода может использоваться вместо препроцессора для активации блоков кода.
-
Динамическое устранение мертвого кода
- Мертвый код может быть условно мертвым, зависящим от условий выполнения.
- Динамическое устранение мертвого кода идентифицирует и удаляет условно неработоспособный код во время выполнения.
- Большинство языков программирования не поддерживают динамическое устранение мертвого кода.
-
Дополнительные оптимизации и рекомендации
- Устранение избыточного кода, упрощение и другие оптимизации могут быть связаны с устранением мертвого кода.
- Ссылки на дополнительные чтения и внешние ссылки приведены в конце статьи.