Добрый день.
Моя модель может запускаться в двух режимах. Первый
подразумевает запуск одиночного прогона, который позволяет по
анимации оценить адекватность работы модели, корневой класс - Main.
Модель стохастическая, для набора статистики и поиска оптимума
создан вспомогательный класс Root. По сути он управляет
многократным созданием и удалением Main через определенные
промежутки времени (по таймеру) и сбора статистики перед каждым
удалением. После определённого количества срабатываний счётчика
(достижения размера выборки) результаты сравниваются с
требуемыми, в случае, если они меньше, то к входному параметру
прибавляется некое число (шаг) и выполнение таймера продолжается
еще некоторое количество раз (равное размеру выборки) и так ad
infinitum. Root не наследует анимацию Main, т. о. я думал, что обезопасил
машину от затраты процессорного времени на анимацию. Вот сейчас
решил проверить: а действительно ли анимация Main и всех АО вниз по
иерархии не создаётся. Оказалось это не так, простая трассировка
из кода анимации срабатывает. Провел эксперимент: посчитал время
выполнения по-старому:
640 прогонов выполнено за 8718 мсек
640 прогонов выполнено за 8922 мсек
640 прогонов выполнено за 9891 мсек
и предварительно вручную "временно исключив" все анимации,
кроме той, которая действительно отображается:
640 прогонов выполнено за 3360 мсек
640 прогонов выполнено за 3390 мсек
640 прогонов выполнено за 3781 мсек
Вопрос в том как программно отключить все анимации в случае,
когда корневой объект не Main, а Root?
Подскажите есть ил более простой способ реализации моей задачи?
Сильно ли упростится реализация при переходе на 6-ю версию?
Евгений — 16.03.10
Все вопросы остаются открытыми, но у меня получилось сделать то,
что я хотел. Метод дубовый, но работает:
Дополнительный код класса
Main(){
battlefield = (_Group)(new __Group());
}
public class __Group extends _Group {
public void setup() {
}
public void init() {
super.init();
}
public void update() {
super.update();
}
}
Павел — 04.06.10
Рекомендую Вам перейти на AnyLogic 6. Вашу задачу там можно будет
решить с помощью эксперимента по варьированию параметров,
установив все параметры как фиксированные. При этом анимация
создаваться не будет, модель будет прогоняться в самом быстром
режиме. Более того, большинство вещей в 6-й версии делается
гораздо проще и быстрее.