Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

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

  1. #1
    Activist Аватар для captain cobalt
    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Операторы бейсика. Сколько тактов?

    Сколько тактов занимают машинные команды знают все.

    А сколько тактов занимают операторы бейсика? Где почитать?

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

  3. #2
    Master
    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не знаю где почитать, но каждый раз по-разному
    Н-р все что связано с арифметикой, будет зависеть от инициализированности переменных и калькулятора.

  4. #3
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jdigreze
    Не знаю где почитать, но каждый раз по-разному
    Н-р все что связано с арифметикой, будет зависеть от инициализированности переменных и калькулятора.
    Не только с арифметикой. Если посмотреть список команд калькулятора, то видно, что туда умещается также работа со строками и прочие вычисления.

  5. #4
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    А сколько тактов занимают операторы бейсика? Где почитать?
    Много и больше. Типичный оператор -- несколько мс. Где почитать не знаю, разве что измерить
    самостоятельно.

  6. #5
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Сколько тактов занимают машинные команды знают все.

    А сколько тактов занимают операторы бейсика? Где почитать?
    Вот ты извращенец....
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  7. #6
    Veteran Аватар для GriV
    Регистрация
    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, Звук, Цвет

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

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

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

  9. #8
    Activist Аватар для Raider
    Регистрация
    24.06.2005
    Адрес
    novosibirsk
    Сообщений
    266
    Записей в дневнике
    5
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В фирменном спектрумовском бейсике, насколько я это помню (все-таки лет 13 ничего не писал на нем ), есть есть одна неприятная вещь -
    бейсик очень тормозно переходит по строкам, он ищет очередную подлежащую выполнению строку. то есть начинает в памяти от начала бейсик-программы, и перебирает строки пока не найдет нужную.
    Именно поэтому, кстати, большие "коммерчески-серьезные" бейсик-программы стремились писать так, чтобы в каждой строке было как можно больше операторов бейсика - эдакими гигантскими строками-кусками. ..

    Выполнение операторов бейсика сильно разное. Особенно тормоза начинаются там, где внутренний бейски-калькулятор что-то считает с помощью других "слов" калькулятора и с помощью полиномов Чебышева (синус какой-нибудь или какаую-нибудь другую функцию). Вы посмотрите книгу О'Хары и Логана (откомментированные исходники 48-й прошивки) - там можно получить представление что происходит внутри бейсика...
    Alex Raider, Flash inc. 1992-1997 Новосибирск

  10. #9
    Junior Аватар для fenix
    Регистрация
    04.04.2006
    Адрес
    г. Комсомольск-на-Амуре
    Сообщений
    18
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Сколько тактов занимают машинные команды знают все.

    А сколько тактов занимают операторы бейсика? Где почитать?
    На мой взгляд, без разницы. Только для самообразования. Я уже убедился: чтобы написать что-то стоящее, нужно изучать assembler. Остальные или тормозят или оптимизация страдает (читай "тоже тормозят"). Но это лично мое мнение...

  11. #10
    Activist Аватар для Raider
    Регистрация
    24.06.2005
    Адрес
    novosibirsk
    Сообщений
    266
    Записей в дневнике
    5
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    10 PAUSE 1: BORDER 0 : BORDER 1 : BORDER 2 : BORDER 3 : BORDER 4 : BORDER 5 : BORDER 6 : BORDER 7 : GO TO 10
    Alex Raider, Flash inc. 1992-1997 Новосибирск

Страница 1 из 3 123 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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