Sync from v0.13
This commit is contained in:
34
vllm/logging_utils/log_time.py
Normal file
34
vllm/logging_utils/log_time.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
"""
|
||||
Provides a timeslice logging decorator
|
||||
"""
|
||||
|
||||
import functools
|
||||
import time
|
||||
|
||||
|
||||
def logtime(logger, msg=None):
|
||||
"""
|
||||
Logs the execution time of the decorated function.
|
||||
Always place it beneath other decorators.
|
||||
"""
|
||||
|
||||
def _inner(func):
|
||||
@functools.wraps(func)
|
||||
def _wrapper(*args, **kwargs):
|
||||
start = time.perf_counter()
|
||||
result = func(*args, **kwargs)
|
||||
elapsed = time.perf_counter() - start
|
||||
|
||||
prefix = (
|
||||
f"Function '{func.__module__}.{func.__qualname__}'"
|
||||
if msg is None
|
||||
else msg
|
||||
)
|
||||
logger.debug("%s: Elapsed time %.7f secs", prefix, elapsed)
|
||||
return result
|
||||
|
||||
return _wrapper
|
||||
|
||||
return _inner
|
||||
Reference in New Issue
Block a user