Skip to content

Commit 92858ca

Browse files
authored
Merge pull request #7705 from jenshnielsen/jenshnielsen/trace_add_result_time
Track time spend in add_result
2 parents e6ba717 + a361885 commit 92858ca

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/qcodes/dataset/measurements.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from inspect import signature
1818
from itertools import chain
1919
from numbers import Number
20-
from time import perf_counter
20+
from time import perf_counter, perf_counter_ns
2121
from typing import TYPE_CHECKING, Any, TypeAlias, TypeVar, cast
2222

2323
import numpy as np
@@ -67,6 +67,7 @@
6767
log = logging.getLogger(__name__)
6868
TRACER = trace.get_tracer(__name__)
6969

70+
7071
ActionType = tuple[Callable[..., Any], Sequence[Any]]
7172
SubscriberType = tuple[
7273
Callable[..., Any], MutableSequence[Any] | MutableMapping[Any, Any]
@@ -98,6 +99,7 @@ def __init__(
9899
) -> None:
99100
self._span = span
100101
self._dataset = dataset
102+
self._add_result_time_ns = 0
101103
if (
102104
DataSaver.default_callback is not None
103105
and "run_tables_subscription_callback" in DataSaver.default_callback
@@ -207,6 +209,7 @@ def add_result(self, *result_tuples: ResType) -> None:
207209
its type.
208210
209211
"""
212+
start_time = perf_counter_ns()
210213

211214
parameter_results: list[ParameterResultType] = [
212215
self._coerce_result_tuple_to_parameter_result_type(result_tuple)
@@ -277,6 +280,7 @@ def add_result(self, *result_tuples: ResType) -> None:
277280
if perf_counter() - self._last_save_time > self.write_period:
278281
self.flush_data_to_database()
279282
self._last_save_time = perf_counter()
283+
self._add_result_time_ns += perf_counter_ns() - start_time
280284

281285
def _unpack_arrayparameter(
282286
self, partial_result: ResType
@@ -734,6 +738,8 @@ def __exit__(
734738
with DelayedKeyboardInterrupt(
735739
context={"reason": "qcodes measurement exit", "qcodes_guid": self.ds.guid}
736740
):
741+
add_result_time = self.datasaver._add_result_time_ns
742+
self._span.set_attribute("qcodes_add_result_time_ms", add_result_time / 1e6)
737743
self.datasaver.flush_data_to_database(block=True)
738744

739745
# perform the "teardown" events

0 commit comments

Comments
 (0)