Выявление и удаление ошибок из программы или программного обеспечения называется отладкой . Отладка в идеале является частью процесса тестирования, но на самом деле это делается на каждом этапе программирования. Кодеры должны отладить самый маленький из своих модулей, прежде чем двигаться дальше. Это уменьшает количество ошибок, возникающих на этапе тестирования, и значительно сокращает время и усилия тестирования. Давайте посмотрим на типы ошибок, которые могут возникнуть в программе.
Синтаксические ошибки
Синтаксические ошибки — это грамматические ошибки в программе. Каждый язык имеет свой собственный набор правил, таких как создание идентификаторов, написание выражений и т. Д. Для написания программ. Когда эти правила нарушаются, ошибки называются синтаксическими ошибками . Многие современные интегрированные среды разработки могут определять синтаксические ошибки при вводе программы. Иначе, это будет показано при компиляции программы. Давайте возьмем пример —
В этой программе переменная prod не была объявлена, которая генерируется компилятором.
Семантические ошибки
Семантические ошибки также называют логическими ошибками . Оператор не имеет синтаксических ошибок, поэтому он будет правильно скомпилирован и запущен. Однако это не даст желаемого результата, так как логика неверна. Давайте возьмем пример.
Посмотрите на строку 13. Здесь программист хочет проверить, равен ли делитель 0, чтобы избежать деления на 0. Однако вместо использования оператора сравнения == был использован оператор присваивания =. Теперь каждый раз, когда выражение «if» будет принимать значение «истина», а программа будет выводить как «Вы не можете делить на 0». Определенно не то, что было задумано !!
Логические ошибки не могут быть обнаружены ни одной программой; они должны быть определены самим программистом, когда желаемый результат не достигнут.
Ошибки во время выполнения
Ошибки выполнения — это ошибки, возникающие при выполнении программы. Это означает, что в программе нет синтаксических ошибок. Вот некоторые из наиболее распространенных ошибок времени выполнения, которые могут возникнуть в вашей программе:
- Бесконечный цикл
- Деление на ‘0’
- Введено неверное значение пользователем (скажем, строка вместо целого числа)
Оптимизация кода
Любой метод, с помощью которого код изменяется для улучшения его качества и эффективности, называется оптимизацией кода. Качество кода определяет срок жизни кода. Если код можно использовать и поддерживать в течение длительного периода времени, передаваемого от продукта к продукту, его качество считается высоким, а срок его службы более продолжительным. Напротив, если фрагмент кода может использоваться и поддерживаться только в течение коротких периодов времени, скажем, до тех пор, пока версия не станет действительной, он считается некачественным и имеет короткий срок службы.
Надежность и скорость кода определяет эффективность кода . Эффективность кода является важным фактором обеспечения высокой производительности программного обеспечения.
Есть два подхода к оптимизации кода —
-
Оптимизация на основе интуиции (IBO) — здесь программист пытается оптимизировать программу на основе своих собственных навыков и опыта. Это может работать для небольших программ, но терпит неудачу с ростом сложности программы.
-
Оптимизация на основе фактических данных (EBO) — здесь используются автоматизированные инструменты для выявления узких мест в производительности, а затем соответствующие части оптимизируются соответствующим образом. Каждый язык программирования имеет свой набор инструментов для оптимизации кода. Например, PMD, FindBug и Clover используются для оптимизации кода Java.
Оптимизация на основе интуиции (IBO) — здесь программист пытается оптимизировать программу на основе своих собственных навыков и опыта. Это может работать для небольших программ, но терпит неудачу с ростом сложности программы.
Оптимизация на основе фактических данных (EBO) — здесь используются автоматизированные инструменты для выявления узких мест в производительности, а затем соответствующие части оптимизируются соответствующим образом. Каждый язык программирования имеет свой набор инструментов для оптимизации кода. Например, PMD, FindBug и Clover используются для оптимизации кода Java.
Код оптимизирован для времени выполнения и потребления памяти, потому что времени мало, а память дорогая. Должен быть баланс между ними. Если временная оптимизация увеличивает нагрузку на память или оптимизация памяти замедляет код, цель оптимизации будет потеряна.
Оптимизация времени выполнения
Оптимизация кода для времени выполнения необходима для обеспечения быстрого обслуживания пользователей. Вот несколько советов по оптимизации времени выполнения —
-
Используйте команды, которые имеют встроенную оптимизацию времени выполнения
-
Используйте переключатель вместо условия if
-
Минимизируйте вызовы функций внутри структур цикла
-
Оптимизировать структуры данных, используемые в программе
Используйте команды, которые имеют встроенную оптимизацию времени выполнения
Используйте переключатель вместо условия if
Минимизируйте вызовы функций внутри структур цикла
Оптимизировать структуры данных, используемые в программе
Оптимизация памяти
Как известно, данные и инструкции занимают память. Когда мы говорим данные, это также относится к промежуточным данным, которые являются результатом выражений. Нам также необходимо отслеживать, сколько инструкций составляют программа или модуль, который мы пытаемся оптимизировать. Вот несколько советов по оптимизации памяти —
Используйте команды, которые имеют встроенную оптимизацию памяти
Сохраняйте использование переменных, которые должны храниться в регистрах, как минимум
Избегайте объявления глобальных переменных внутри циклов, которые выполняются много раз
Избегайте использования интенсивных функций процессора, таких как sqrt ()