Вычислить общее время, за которое симуляция прошла - PullRequest
0 голосов
/ 01 октября 2018

Я использую env.run () для запуска симуляции, и моя симуляция содержит кучу процессов, которые ждут друг друга и обрабатывают какое-то событие.

Теперь я знаю, когда мы не указываем времякадр, для которого должно выполняться моделирование, затем моделирование выполняется до тех пор, пока не будут обработаны все события, поэтому в этом случае как я могу вычислить конечное время (t) в коде, до которого выполнялось моделирование?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Просто используйте env.now после вызова env.run().

Пример:

import simpy


def func1():
    yield env.timeout(50)
    print("Foo bar")


def func2():
    yield env.timeout(30)
    print("Hello world")


env = simpy.Environment()
env.process(func1())
env.process(func2())
env.run()

print("Simulation ended at: {}".format(env.now))

Выход:

Hello world
Foo bar
Simulation ended at: 50
0 голосов
/ 01 октября 2018

Это довольно просто, вы проверяете, сколько сейчас времени, когда вы начинаете симуляцию, start_time и время, когда симуляция закончилась, end_time.Разница - это время, за которое симуляция прошла.

import time
start_time = time.time()
end_time = time.time()
print end_time  - start_time
...