User Tag List

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

Тема: Операторы бейсика. Сколько тактов?

Комбинированный просмотр

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

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Измерить чрезвычайно просто.

    Берёшь программу вида -
    1 LET A=A+1: GOTO 1
    99 LET A=1: GOTO 1

    Запускаешь сие (при помощи RUN 99) на протяжении, скажем, 10 минут (засекать по таймеру). Останавливаешь. Смотришь А. Делишь [10 (минут)*60 (секунд)*50 (фреймов)*69998 или 71998 (в зависомости от модели)] на полученное число. Вот тебе и будет почти точное количество тактов на цикл вида LET A=A+1: GOTO XXX

    Далее, усложняешь её до вида:

    1 <НУЖНЫЙ_ОПЕРАТОР>: LET A=A+1: GOTO 1
    99 LET A=1: GOTO 1

    Так как ты уже знаешь сколько тактов занимает предыдущая конструкция в тактах, то сможешь вычислить размер в тактах (так как было абзацем выше) новой конструкции. Вычитаешь из полученного числа тактов для текущей конструкции то число, которое получено ранее. Вот и будет почти то число тактов которое занимает твоя команда в басике - <НУЖНЫЙ_ОПЕРАТОР>.

    Что не учитывает такой подход: дело в том, что бейсик транслятор мягко говоря туповат, и каждую строчку он ищет от первой. Потому - в целях снижения этих затрат - запуск начинает с 99 строки, которая делает переход на первую - самую быструю строчку, тем не менее даже первую строчку ему приходиться искать.

    Кроме того, у тебя обязательно будут затраты на переход от оператора к оператору внутри строки, которые в общем то трудно учесть.

    Более точный результат ты сможешь получить только если проанализируешь работу машинного кода, обрабатывающего команды басика, да и то - это будет сильно зависеть от того какие были начальные условия. Т.е. условные операторы могут работать быстрее медленнее в зависимости от начальных условий - я думаю тут даже объяснять не надо почему.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию И ещё,

    мне не совсем понятно зачем нужна длительность выполнения операторов басика. Может быть сравнивать производительность разных басик-трансляторов?
    Скорей всего точную информацию по времени работы операторов ты нигде не найдёшь - просто потому что это никому не надо.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

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

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

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

Похожие темы

  1. сколько дисководов?
    от Almaz в разделе Внешние накопители
    Ответов: 17
    Последнее: 19.08.2007, 19:18
  2. Ответов: 21
    Последнее: 31.08.2006, 15:21
  3. Сколько цветов у Speccy?
    от Conan в разделе Графика
    Ответов: 51
    Последнее: 31.07.2006, 23:01
  4. Ответов: 47
    Последнее: 18.01.2006, 16:39
  5. Сколько голосов у AY и YM?
    от DR ZX в разделе Музыка
    Ответов: 23
    Последнее: 14.01.2006, 12:20

Ваши права

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