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

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

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
14 года 4 мес. назад #50049 от James
У меня есть коммон эвент, состоящий из 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

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
14 года 4 мес. назад - 14 года 4 мес. назад #50052 от James
Это уже есть (второй вариант).
Я просто не стал усложнять.

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
14 года 4 мес. назад #50055 от James
Согласен, решение через 2500 else смахивает на верное, но на мейкере это реализовать жутко неудобно. Строчка уедет далеко вправо.

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
14 года 4 мес. назад - 14 года 4 мес. назад #50056 от James
Так. Есть идея.
Вопрос!
Если один коммон эвент вызывается через другой, Exit Event Processing остановит оба или только тот, в котором он (Exit) прописан?
Последнее редактирование: 14 года 4 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
14 года 4 мес. назад #50061 от James
Уже проверил. Кажется, работает.

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.094 секунд
Работает на Kunena форум