Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Вопрос о связи быстродействия и Jump to Label [XP]

Вопрос о связи быстродействия и Jump to Label [XP] 12 года 4 мес. назад #50049

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Писатель3 местоРазработчикПобедитель конкурсаПисатель 2 местоОрганизатор конкурсов2 место
У меня есть коммон эвент, состоящий из 2500 кусков следующего вида:

Conditional Branch: Variable [0001] = i
Show Picture номер

Branch End

В целях увеличения быстродействия я решил прибегнуть к помощи Jump to Label (Хотя её не одобряю). Чтобы когда переменная была равна N, то не шла проверка ещё 2500-N условий.

Итого у меня оказалось 2500 фрагментов такого вида:

Conditional Branch: Variable [0001] = i
Show Picture номер
Jump to Label: метка

Branch End

(И в конце метка)

В итоге, по идее, как только находится нужное условие, остальные проверяться не будут. Скорость, по идее, должна увеличиваться.
Но я получил диаметрально противоположный эффект: цикл с десятикратным вызовом этого коммон эвента работает, как минимум, в полтора раза медленнее.
В чём может быть проблема?
Администратор запретил публиковать записи гостям.

Re: Вопрос о связи быстродействия и Jump to Label [XP] 12 года 4 мес. назад #50052

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Писатель3 местоРазработчикПобедитель конкурсаПисатель 2 местоОрганизатор конкурсов2 место
Это уже есть (второй вариант).
Я просто не стал усложнять.

А две с половиной тысячи ветвлений через else делать - по моему мнению, тупо.

Я спрашиваю лишь, почему Jump to Label замедляет выполнение.
Последнее редактирование: 12 года 4 мес. назад от James.
Администратор запретил публиковать записи гостям.

Re: Вопрос о связи быстродействия и Jump to Label [XP] 12 года 4 мес. назад #50055

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Писатель3 местоРазработчикПобедитель конкурсаПисатель 2 местоОрганизатор конкурсов2 место
Согласен, решение через 2500 else смахивает на верное, но на мейкере это реализовать жутко неудобно. Строчка уедет далеко вправо.

А на фрагменты я уже давно поделил. Но всё равно процесс кажется довольно медленным

P.S. Я не программист. Пока что. Два года не хватало самую малость, чтобы пройти из областной олимпиады по программированию во всероссийскую. В этом буду стараться больше.
Учиться потом как раз собираюсь на программиста.
Администратор запретил публиковать записи гостям.

Re: Вопрос о связи быстродействия и Jump to Label [XP] 12 года 4 мес. назад #50056

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Писатель3 местоРазработчикПобедитель конкурсаПисатель 2 местоОрганизатор конкурсов2 место
Так. Есть идея.
Вопрос!
Если один коммон эвент вызывается через другой, Exit Event Processing остановит оба или только тот, в котором он (Exit) прописан?
Последнее редактирование: 12 года 4 мес. назад от James.
Администратор запретил публиковать записи гостям.

Re: Вопрос о связи быстродействия и Jump to Label [XP] 12 года 4 мес. назад #50061

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Писатель3 местоРазработчикПобедитель конкурсаПисатель 2 местоОрганизатор конкурсов2 место
Уже проверил. Кажется, работает.

Одно событие можно вызывать из другого. Можно даже вызывать третье и четвёртое - до, кажется, сотого.
И, кажется, ничто не мешает вызвать событие из самого себя, если поставить условие, при котором он прекращает себя вызывать. Это, кажется, называется рекурсией?

А скрипты в своём текущем проекте я не применяю (даже просто в виде кода в эвентах). Прин-ци-пи-аль-но. Просто поставил себе такой челлендж.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.153 секунд