mirror of
https://github.com/python/cpython.git
synced 2025-12-31 12:33:28 +00:00
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""Constants for the sampling profiler."""
|
|
|
|
# Time unit conversion constants
|
|
MICROSECONDS_PER_SECOND = 1_000_000
|
|
MILLISECONDS_PER_SECOND = 1_000
|
|
|
|
# Profiling mode constants
|
|
PROFILING_MODE_WALL = 0
|
|
PROFILING_MODE_CPU = 1
|
|
PROFILING_MODE_GIL = 2
|
|
PROFILING_MODE_ALL = 3 # Combines GIL + CPU checks
|
|
PROFILING_MODE_EXCEPTION = 4 # Only samples when thread has an active exception
|
|
|
|
# Sort mode constants
|
|
SORT_MODE_NSAMPLES = 0
|
|
SORT_MODE_TOTTIME = 1
|
|
SORT_MODE_CUMTIME = 2
|
|
SORT_MODE_SAMPLE_PCT = 3
|
|
SORT_MODE_CUMUL_PCT = 4
|
|
SORT_MODE_NSAMPLES_CUMUL = 5
|
|
|
|
# Default location for synthetic frames (native, GC) that have no source location
|
|
# Format: (lineno, end_lineno, col_offset, end_col_offset)
|
|
DEFAULT_LOCATION = (0, 0, -1, -1)
|
|
|
|
# Thread status flags
|
|
try:
|
|
from _remote_debugging import (
|
|
THREAD_STATUS_HAS_GIL,
|
|
THREAD_STATUS_ON_CPU,
|
|
THREAD_STATUS_UNKNOWN,
|
|
THREAD_STATUS_GIL_REQUESTED,
|
|
THREAD_STATUS_HAS_EXCEPTION,
|
|
)
|
|
except ImportError:
|
|
# Fallback for tests or when module is not available
|
|
THREAD_STATUS_HAS_GIL = (1 << 0)
|
|
THREAD_STATUS_ON_CPU = (1 << 1)
|
|
THREAD_STATUS_UNKNOWN = (1 << 2)
|
|
THREAD_STATUS_GIL_REQUESTED = (1 << 3)
|
|
THREAD_STATUS_HAS_EXCEPTION = (1 << 4)
|