mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fabric: SurfaceTelemetry now contains/records recent transaction telemetry points
Summary: Now SurfaceTelemetry records the last 16 full transaction telemetries. We will use it info to report to our trackers. Changelog: [Internal] Fabric-specific internal change. Reviewed By: mdvacca Differential Revision: D22887633 fbshipit-source-id: 0d88adff757e4bc5a701b51d4d06d85e1f51f10f
This commit is contained in:
committed by
Facebook GitHub Bot
parent
1ae76bf0dd
commit
d5e244bcee
@@ -7,6 +7,8 @@
|
||||
|
||||
#include "SurfaceTelemetry.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
@@ -20,6 +22,13 @@ void SurfaceTelemetry::incorporate(
|
||||
|
||||
numberOfTransactions_++;
|
||||
numberOfMutations_ += numberOfMutations;
|
||||
|
||||
while (recentCommitTelemetries_.size() >=
|
||||
kMaxNumberOfRecordedCommitTelemetries) {
|
||||
recentCommitTelemetries_.erase(recentCommitTelemetries_.begin());
|
||||
}
|
||||
|
||||
recentCommitTelemetries_.push_back(telemetry);
|
||||
}
|
||||
|
||||
TelemetryDuration SurfaceTelemetry::getLayoutTime() const {
|
||||
@@ -46,5 +55,16 @@ int SurfaceTelemetry::getNumberOfMutations() const {
|
||||
return numberOfMutations_;
|
||||
}
|
||||
|
||||
std::vector<MountingTelemetry> SurfaceTelemetry::getRecentCommitTelemetries()
|
||||
const {
|
||||
auto result = std::vector<MountingTelemetry>{};
|
||||
result.reserve(recentCommitTelemetries_.size());
|
||||
std::copy(
|
||||
recentCommitTelemetries_.begin(),
|
||||
recentCommitTelemetries_.end(),
|
||||
std::back_inserter(result));
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <better/small_vector.h>
|
||||
#include <vector>
|
||||
|
||||
#include <react/renderer/mounting/MountingTelemetry.h>
|
||||
#include <react/utils/Telemetry.h>
|
||||
|
||||
@@ -19,6 +22,8 @@ namespace react {
|
||||
*/
|
||||
class SurfaceTelemetry final {
|
||||
public:
|
||||
constexpr static size_t kMaxNumberOfRecordedCommitTelemetries = 16;
|
||||
|
||||
/*
|
||||
* Metrics
|
||||
*/
|
||||
@@ -30,6 +35,8 @@ class SurfaceTelemetry final {
|
||||
int getNumberOfTransactions() const;
|
||||
int getNumberOfMutations() const;
|
||||
|
||||
std::vector<MountingTelemetry> getRecentCommitTelemetries() const;
|
||||
|
||||
/*
|
||||
* Incorporate data from given transaction telemetry into aggregated data
|
||||
* for the Surface.
|
||||
@@ -44,6 +51,9 @@ class SurfaceTelemetry final {
|
||||
|
||||
int numberOfTransactions_{};
|
||||
int numberOfMutations_{};
|
||||
|
||||
better::small_vector<MountingTelemetry, kMaxNumberOfRecordedCommitTelemetries>
|
||||
recentCommitTelemetries_{};
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
|
||||
Reference in New Issue
Block a user