💀
Второй курс РПО
Разработка программных модулей
Разработка программных модулей
  • Модели разработки
  • Ошибки и отладка программ
  • Средства разработки алгоритмов
    • Основные принципы и стадии тестирования
  • Сложностные классы
  • Эмуляторы операционных систем
  • Сложность сортировки
  • Уровни тестирования
  • Задание №1
  • Регрессионное тестирование
  • Тестирование «белым ящиком»
  • Как делать оценку сложности?
  • Алгоритмы и сложность
  • Тестирование "белым ящиком" №2
  • Сложность алгоритмов
  • Тестирование "белым ящиком" №3
  • Тестирование "Чёрным ящиком»" №1
  • Тестирование "Черным ящиком" №2
  • Оценка сложности эвристических алгоритмов
  • Принципы ООП
  • Тестирование "Черным ящиком" №3
  • КТ - В3
  • Модульное тестирование
    • С кодами
  • Модульное тестирование
  • Абстрактные классы и интерфейсы в Python
  • Структуры в Python по аналогии с C++
    • Диалоги гениев
  • Делегаты в Python
    • Ещё более не смешные диалоги
  • Регулярные выражения в Python от простого к сложному
  • Python: Коллекции
  • Параметризованные классы (шаблоны)
  • Указатели и операции со списками в Python
  • Интеграционное тестирование
  • Работа с классами. Перегрузка методов
  • Определение операций в классе.
  • Создание наследованных классов
  • Интеграционное тестирование
  • Работа с объектами через интерфейсы
  • Использование стандартных интерфейсов
  • Работа с типом данных "Структура"
  • Коллекции. Параметризованные классы
  • Использование регулярных выражений
  • Операции со списками
  • Что такое паттерны проектирования?
  • Шпаргалка по шаблонам проектирования
    • [Habr] Шпаргалка
  • UML-диаграммы проектирования
  • Использование основных шаблонов.
  • Использование каких то там шаблонов
  • 15-я Практическая
  • 16-я Практическая
  • Graphviz Online
  • 17-я Практическая
  • Введение в теорию программирования: Объектно-ориентированный подход
  • Документирование софта и стандарты
  • C# Ввод и вывод
  • Оптимизация кода: просто о главном
  • Автоматизация разработки технической документации
  • Автоматизированное документирование и первичные данные
  • ADO.NET что это?
Powered by GitBook
On this page

Оптимизация кода: просто о главном

31.03.2025

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


1. Что дает оптимизация?

  • Ускорение работы – программа меньше "тормозит".

  • Экономия памяти – меньше нагружает компьютер.

  • Проще масштабировать – код легче дорабатывать.


2. 3 главных способа оптимизации

① Убираем лишнее в циклах

Если внутри цикла есть повторяющиеся вычисления – выносим их наружу:

# Было (медленно):  
for i in range(100000):  
    result = x * 2 + 5  # Считает одно и то же  

# Стало (быстрее):  
temp = x * 2 + 5  
for i in range(100000):  
    result = temp  

② Выбираем правильные структуры данных

  • Нужен быстрый поиск? set или dict вместо list.

  • Часто удаляете первый элемент? collections.deque работает быстрее.

③ Используем кеширование

Если функция вызывается с одинаковыми аргументами много раз – сохраняем результат:

from functools import lru_cache  

@lru_cache  
def heavy_calculation(x):  
    # Долгие вычисления  
    return result  

3. Когда это нужно?

  • Не оптимизируйте заранее – сначала сделайте рабочий вариант.

  • Замеряйте скорость (например, timeit в Python) – улучшайте только "узкие места".

Главное правило: Чистый и понятный код важнее микрооптимизаций. Ускоряйте только там, где это реально нужно.

PreviousC# Ввод и выводNextАвтоматизация разработки технической документации

Last updated 1 month ago