Bug 1810871 - Add perfstats to capture internal necko timings - async open to transaction pending and response start parent to content r=bas,necko-reviewers,kershaw

These timings look to be slow in the beta population so adding Perfstats to help test improvements.

Differential Revision: https://phabricator.services.mozilla.com/D167585
This commit is contained in:
Andrew Creskey 2023-01-25 13:28:49 +00:00
parent 828431224a
commit 78d06d6746
2 changed files with 29 additions and 17 deletions

View File

@ -463,12 +463,18 @@ void HttpChannelChild::OnStartRequest(
Telemetry::AccumulateTimeDelta(
Telemetry::NETWORK_ASYNC_OPEN_CHILD_TO_TRANSACTION_PENDING_EXP_MS,
cosString, mAsyncOpenTime, aArgs.timing().transactionPending());
PerfStats::RecordMeasurement(
PerfStats::Metric::HttpChannelAsyncOpenToTransactionPending,
aArgs.timing().transactionPending() - mAsyncOpenTime);
}
if (!aArgs.timing().responseStart().IsNull()) {
Telemetry::AccumulateTimeDelta(
Telemetry::NETWORK_RESPONSE_START_PARENT_TO_CONTENT_EXP_MS, cosString,
aArgs.timing().responseStart(), TimeStamp::Now());
PerfStats::RecordMeasurement(
PerfStats::Metric::HttpChannelResponseStartParentToContent,
TimeStamp::Now() - aArgs.timing().responseStart());
}
StoreAllRedirectsSameOrigin(aArgs.allRedirectsSameOrigin());
@ -918,6 +924,9 @@ void HttpChannelChild::OnStopRequest(
Telemetry::AccumulateTimeDelta(
Telemetry::NETWORK_RESPONSE_END_PARENT_TO_CONTENT_MS, cosString,
aTiming.responseEnd(), TimeStamp::Now());
PerfStats::RecordMeasurement(
PerfStats::Metric::HttpChannelResponseEndParentToContent,
TimeStamp::Now() - aTiming.responseEnd());
}
mResponseTrailers = MakeUnique<nsHttpHeaderArray>(aResponseTrailers);

View File

@ -33,23 +33,26 @@
// Define a new metric by adding it to this list. It will be created as a class
// enum value mozilla::PerfStats::Metric::MyMetricName.
#define FOR_EACH_PERFSTATS_METRIC(MACRO) \
MACRO(DisplayListBuilding) \
MACRO(Rasterizing) \
MACRO(WrDisplayListBuilding) \
MACRO(LayerTransactions) \
MACRO(Compositing) \
MACRO(Reflowing) \
MACRO(Styling) \
MACRO(HttpChannelCompletion) \
MACRO(HttpChannelCompletion_Network) \
MACRO(HttpChannelCompletion_Cache) \
MACRO(JSBC_Compression) \
MACRO(JSBC_Decompression) \
MACRO(JSBC_IO_Read) \
MACRO(JSBC_IO_Write) \
MACRO(MinorGC) \
MACRO(MajorGC) \
#define FOR_EACH_PERFSTATS_METRIC(MACRO) \
MACRO(DisplayListBuilding) \
MACRO(Rasterizing) \
MACRO(WrDisplayListBuilding) \
MACRO(LayerTransactions) \
MACRO(Compositing) \
MACRO(Reflowing) \
MACRO(Styling) \
MACRO(HttpChannelCompletion) \
MACRO(HttpChannelCompletion_Network) \
MACRO(HttpChannelCompletion_Cache) \
MACRO(HttpChannelAsyncOpenToTransactionPending) \
MACRO(HttpChannelResponseStartParentToContent) \
MACRO(HttpChannelResponseEndParentToContent) \
MACRO(JSBC_Compression) \
MACRO(JSBC_Decompression) \
MACRO(JSBC_IO_Read) \
MACRO(JSBC_IO_Write) \
MACRO(MinorGC) \
MACRO(MajorGC) \
MACRO(NonIdleMajorGC)
namespace mozilla {