Skip to content

Commit

Permalink
[Python 3]: replace time() with perf_counter() for better measure…
Browse files Browse the repository at this point in the history
…ments of short duration. (openai#2385)

* Update record_episode_statistics.py

* Update stats_recorder.py

* Update async_vector_env.py
  • Loading branch information
zuoxingdong authored Sep 11, 2021
1 parent a8f551e commit 263a341
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 8 deletions.
4 changes: 2 additions & 2 deletions gym/vector/async_vector_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,10 +349,10 @@ def _poll(self, timeout=None):
self._assert_is_running()
if timeout is None:
return True
end_time = time.time() + timeout
end_time = time.perf_counter() + timeout
delta = None
for pipe in self.parent_pipes:
delta = max(end_time - time.time(), 0)
delta = max(end_time - time.perf_counter(), 0)
if pipe is None:
return False
if pipe.closed or (not pipe.poll(delta)):
Expand Down
4 changes: 2 additions & 2 deletions gym/wrappers/monitoring/stats_recorder.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ def before_reset(self):

self.done = False
if self.initial_reset_timestamp is None:
self.initial_reset_timestamp = time.time()
self.initial_reset_timestamp = time.perf_counter()

def after_reset(self, observation):
self.steps = 0
Expand All @@ -99,7 +99,7 @@ def save_complete(self):
if self.steps is not None:
self.episode_lengths.append(self.steps)
self.episode_rewards.append(float(self.rewards))
self.timestamps.append(time.time())
self.timestamps.append(time.perf_counter())

def close(self):
self.flush()
Expand Down
6 changes: 2 additions & 4 deletions gym/wrappers/record_episode_statistics.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ class RecordEpisodeStatistics(gym.Wrapper):
def __init__(self, env, deque_size=100):
super(RecordEpisodeStatistics, self).__init__(env)
self.num_envs = getattr(env, "num_envs", 1)
self.t0 = (
time.time()
) # TODO: use perf_counter when gym removes Python 2 support
self.t0 = time.perf_counter()
self.episode_count = 0
self.episode_returns = None
self.episode_lengths = None
Expand Down Expand Up @@ -41,7 +39,7 @@ def step(self, action):
episode_info = {
"r": episode_return,
"l": episode_length,
"t": round(time.time() - self.t0, 6),
"t": round(time.perf_counter() - self.t0, 6),
}
infos[i]["episode"] = episode_info
self.return_queue.append(episode_return)
Expand Down

0 comments on commit 263a341

Please sign in to comment.