Files
ray/python/ray/autoscaler/log_timer.py
T
Daniel Edgecumbe 315edab085 [autoscaler] Speedups (#3720)
- NodeUpdater gets its' IP in parallel now (no longer in __init__)
- We use persistent connections in SSH (temp folder created only for ray; ControlMaster)
- hash_runtime_conf was performing a pointless hexlify step, wasting time on large files
- We use NodeUpdaterThreads and share the NodeProvider; NodeUpdaterProcess is removed
- AWSNodeProvider caches nodes more aggressively
- NodeProvider now has a shim batch terminate_nodes() call; AWSNodeProvider parallelises it; the autoscaler uses it
- AWSNodeProvider batches EC2 update_tags calls
- Logging changes throughout to provide standardised timing information for profiling
- Pulled out a few unnecessary is_running calls (NodeUpdater will loop waiting for SSH anyway)

## Related issue number
Issue #3599
2019-02-01 02:46:32 -08:00

22 lines
546 B
Python

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import datetime
import logging
logger = logging.getLogger(__name__)
class LogTimer():
def __init__(self, message):
self._message = message
def __enter__(self):
self._start_time = datetime.datetime.utcnow()
def __exit__(self, *_):
td = datetime.datetime.utcnow() - self._start_time
logger.info(self._message +
" [LogTimer={:.0f}ms]".format(td.total_seconds() * 1000))