pub struct OpenTimings {Show 19 fields
pub seed_ms: f64,
pub conversation_ms: f64,
pub page_ms: f64,
pub encode_ms: f64,
pub prologue_ms: f64,
pub header_ms: f64,
pub catch_up_ms: f64,
pub cards_ms: f64,
pub work_ms: f64,
pub base_ms: f64,
pub rescan_ms: f64,
pub content_ms: f64,
pub reviews_ms: f64,
pub tree_reviews_ms: f64,
pub state_ms: f64,
pub index_ms: f64,
pub resume_ms: f64,
pub tail_ms: f64,
pub pr_age_s: Option<f64>,
}Expand description
The slices of one session open, in milliseconds, gathered as its read runs (#2374).
What splits a slow switch between this server and the client. A client’s own marks say when its click happened and when the first row drew; these are what the server was doing in between, so a gap the two artefacts have to explain is placed by them rather than guessed at.
The slices are disjoint. Each is taken around one read on the path,
in the order the path runs them, so their sum against open_ms is the
work that did not name itself; the seed is the transcript read only a
cold seat pays, and the conversation total excludes it. The frame’s own
record, frame_write, carries prep_ms (the record serialised and
compressed into the bytes) and write_ms (the socket’s share) - both
inside open_ms, and split out of what the record’s own reads would
otherwise have to explain.
Fields§
§seed_ms: f64§conversation_ms: f64§page_ms: f64§encode_ms: f64§prologue_ms: f64§header_ms: f64§catch_up_ms: f64§cards_ms: f64§work_ms: f64§base_ms: f64The review read’s base refresh: the fetch and the tip it is checked against, waited on with no cap and served off the connection’s loop.
rescan_ms: f64The scan pinned to the sha that refresh resolved.
content_ms: f64§reviews_ms: f64§tree_reviews_ms: f64§state_ms: f64§index_ms: f64§resume_ms: f64§tail_ms: f64§pr_age_s: Option<f64>How old the PR attempt behind this record is, in seconds; absent when the scan has never attempted one. The record can carry a PR past its refetch window while the watch refreshes it, and this is what says how stale what a reader drew was.
Trait Implementations§
Source§impl Debug for OpenTimings
impl Debug for OpenTimings
Auto Trait Implementations§
impl Freeze for OpenTimings
impl RefUnwindSafe for OpenTimings
impl Send for OpenTimings
impl Sync for OpenTimings
impl Unpin for OpenTimings
impl UnsafeUnpin for OpenTimings
impl UnwindSafe for OpenTimings
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more