User Tag List

Страница 64 из 70 ПерваяПервая ... 606162636465666768 ... ПоследняяПоследняя
Показано с 631 по 640 из 697

Тема: Бейсики для Вектора-06Ц и клонов

  1. #631

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,030
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    А выигрыш за счет
    1) Парсинг NEXT быстрее, чем GOTO+номер
    2) Адрес начала цикла в NEXT сохранен FORом и сразу переходим куда надо. В GOTO надо еще найти строку (если речь не о модернизированном бейсике и если номер не совпал с "кешем").
    Вот тут мне надо еще раз. В твоем примере я NEXT не вижу. Это какой-то неявный NEXT?
    Больше игр нет

    Эти 2 пользователя(ей) поблагодарили svofski за это полезное сообщение:

    ivagor(05.02.2025), metamorpho(05.02.2025)

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

  3. #632

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, я умудрился скопировать хвост варианта NEXT из варианта GOTO, а правильный вариант такой
    1 REM
    10 REM
    100 REM
    199 FORI=.TO1STEP.:GOTO234
    200 REM
    234 REM
    999 NEXT

    Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    metamorpho(05.02.2025), svofski(05.02.2025)

  4. #633

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,030
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Можно ускорить подобные циклы используя FOR:
    1 REM
    10 REM
    100 REM
    199 FORI=.TO1STEP.:GOTO234
    200 REM
    234 REM
    999 GOTO199
    Можно еще исправить оригинальное сообщение, чтобы было проще тем, кто найдет это потом когда-нибудь.
    И я все-таки не до конца понял что делает GOTO234 в варианте с FOR. Что если я просто напишу FORI=.TO1STEP. без :GOTO234 ?
    Больше игр нет

  5. #634

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Можно еще исправить оригинальное сообщение, чтобы было проще тем, кто найдет это потом когда-нибудь.
    Не хотел там править, чтобы было понятен последующий диалог. Сейчас поправил, надеюсь с разными датами исходного сообщения и правки будет понятнее.
    Цитата Сообщение от svofski Посмотреть сообщение
    И я все-таки не до конца понял что делает GOTO234 в варианте с FOR. Что если я просто напишу FORI=.TO1STEP. без :GOTO234 ?
    Могу только повторить, что для варианта с GOTO199 это перебивание кеширования номера строки в 2.996, чтобы лучше соответствовало реальным программам, у которых внутри циклов бывают переходы.

    Узкоспецифический вопрос - какой вариант записи дробных чисел быстрее для парсинга и преобразования во внутреннее представление?
    В 2.5 A=.1 или A=.9 быстрее, чем A=1E-1 или A=9E-1. Но при наличии нулей после запятой вариант с E становится предпочтительнее: A=1E-2 или A=9E-2 быстрее, чем A=.01 или A=.09.
    В 2.996 вариант с E всегда быстрее.
    Ну и я уже писал, что при частом использовании числа большой (по модулю) степени и/или с большим количеством знаков после запятой его выгоднее присвоить переменной и пользоваться ей.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    metamorpho(06.02.2025)

  6. #635

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,030
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Могу только повторить, что для варианта с GOTO199 это перебивание кеширования номера строки в 2.996, чтобы лучше соответствовало реальным программам, у которых внутри циклов бывают переходы.
    Понятно. То есть это попытка приблизить бенчмарк к реальности, а не часть рекомендованного паттерна. Тебе наверное трудно в это поверить, но это совершенно не очевидно. Это выглядит в контексте примера как какой-то особый трюк, который позволяет все разогнать в два раза. По-моему совсем не вредно такие примеры подробно документировать.
    Больше игр нет

    Этот пользователь поблагодарил svofski за это полезное сообщение:

    metamorpho(06.02.2025)

  7. #636

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Согласен, надо было четче разграничить суть и дополнительные бантики.
    Суть простая - в "бесконечных" циклах вместо
    GOTO назад
    быстрее делать так
    FORI=.TO1STEP.
    ...
    NEXT
    Переменная I выбрана случайным образом, можно использовать и другие буквы.

    Эти 3 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Improver(07.02.2025), metamorpho(06.02.2025), svofski(06.02.2025)

  8. #637

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В msbasicах (даже версий 5.x) нет команды досрочного прерывания цикла FOR...NEXT, но есть как минимум два варианта, как это сделать.
    1. Очевидный.
    Если мы проверили внутри цикла некое условие и оказалось, что надо цикл прервать, то присваиваем переменной цикла конечное значение и переходим на NEXT.
    Строго говоря можно взять значение чуть меньше, главное чтобы (это значение+шаг цикла)>конечное значение. Это может иметь смысл, например если конечное значение дробное, а мы хотим для краткости и скорости использовать целое.
    2. Менее очевидный. Годится при наличии вложенных циклов.
    Если нам надо досрочно окончить внутренний цикл, то делаем переход за пределы внутреннего NEXT. Главное - надо в NEXT внешнего цикла обязательно добавить имя переменной этого цикла.
    NEXT с указанием переменной сбросит со стека "лишнее" и дойдет до своей переменной. Особенно эффективен этот вариант для прерывания сразу нескольких внутренних циклов с выходом во внешний.
    Вариант 1 при наличии вложенных циклов тоже годится, но скорее всего вариант 2 будет чуть быстрее, хотя лучше проверять конкретные случаи.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    metamorpho(08.02.2025)

  9. #638

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Название:	yelfount.gif 
Просмотров:	74 
Размер:	4.9 Кб 
ID:	82133  
    Вложения Вложения

    Эти 4 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Improver(31.03.2025), KTSerg(13.04.2025), metamorpho(30.03.2025), svofski(31.03.2025)

  10. #639

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С дизером намного лучше, ну и перешел с желтого на зеленый.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	grfntdit.gif 
Просмотров:	63 
Размер:	7.2 Кб 
ID:	82139  
    Вложения Вложения

    Эти 5 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Improver(31.03.2025), KTSerg(13.04.2025), metamorpho(05.04.2025), Pyk(31.03.2025), svofski(01.04.2025)

  11. #640

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Переделал тригонометрию на LUT, в 2.996 ускорение почти в 3 раза (но все равно очень медленно).
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	gfntdlut.gif 
Просмотров:	34 
Размер:	7.2 Кб 
ID:	82151  
    Вложения Вложения

    Эти 4 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Improver(05.04.2025), KTSerg(13.04.2025), metamorpho(05.04.2025), svofski(05.04.2025)

Страница 64 из 70 ПерваяПервая ... 606162636465666768 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Картотека ПО для Вектора-06ц
    от svofski в разделе Вектор
    Ответов: 719
    Последнее: 04.04.2024, 11:13
  2. Восстановление Вектора-06ц
    от Daniil Chislov 86 в разделе Вектор
    Ответов: 100
    Последнее: 11.03.2021, 00:23
  3. Ответов: 198
    Последнее: 26.04.2020, 13:05
  4. Ответов: 58
    Последнее: 06.07.2019, 23:56
  5. Ответов: 8
    Последнее: 14.11.2008, 02:41

Ваши права

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