User Tag List

Показано с 1 по 10 из 75

Тема: SwapSet

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #15

    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    128
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Overhead прерываний vs. Overhead SwapSet

    Аргумент критиков: «SwapSet слишком медленный»
    Давайте посмотрим на цифры.

    ---

    1. Разовый overhead
    Параметр Прерывание SwapSet
    Время переключения ~150 тактов ~192 такта

    Разница — всего ~40 тактов..

    ---

    2. Суммарный overhead
    Параметр Прерывание SwapSet
    Частота вызова 50 раз/сек (кадр) или 1000+ раз/сек (таймер) Несколько раз за программу
    Суммарные траты 7 500 тактов/сек (50 Гц) или 150 000 тактов/сек (1 кГц) ~1000 тактов за всё время работы

    Здесь всё очевидно: прерывания стабильно «съедают» тысячи тактов каждую секунду, SwapSet же — копейки за весь прогон программы.

    ---

    3. Разный контекст использования
    • Прерывания — вынужденная плата за связь с железом. Все смирились: «так уж устроен Z80».
    • SwapSet — осознанный инструмент. Его сразу критикуют: «зачем так дорого?»

    На деле же и там, и там сохраняется/восстанавливается состояние ради изоляции контекста.

    ---

    4. Цель SwapSet
    SwapSet — не для tight loop и не для экономии каждого такта. Его задача:
    • изолировать функции друг от друга;
    • дать каждой задаче «свои регистры»;
    • сделать код предсказуемым и модульным.

    Цена в 192 такта оправдана, если цель — ясность и надёжность архитектуры.

    ---

    5. Итоговый контраргумент
    Если сообщество спокойно мирится с 7 500+ тактами overhead от прерываний каждую секунду, то почему вдруг 192 такта на SwapSet, вызываемый пару раз за программу, объявляется непозволительной роскошью? Это ровно тот же приём — сохранение состояния ради изоляции, только на уровне приложений, а не железа.
    Последний раз редактировалось jim; 25.09.2025 в 21:49.
    Like a bright light on the ХORIZON
    Shining so bright, he'll get you flying

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •