mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
d5e244bcee
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
71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#include "SurfaceTelemetry.h"
|
|
|
|
#include <algorithm>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
void SurfaceTelemetry::incorporate(
|
|
MountingTelemetry const &telemetry,
|
|
int numberOfMutations) {
|
|
layoutTime_ += telemetry.getLayoutEndTime() - telemetry.getLayoutStartTime();
|
|
commitTime_ += telemetry.getCommitEndTime() - telemetry.getCommitStartTime();
|
|
diffTime_ += telemetry.getDiffEndTime() - telemetry.getDiffStartTime();
|
|
mountTime_ += telemetry.getMountEndTime() - telemetry.getMountStartTime();
|
|
|
|
numberOfTransactions_++;
|
|
numberOfMutations_ += numberOfMutations;
|
|
|
|
while (recentCommitTelemetries_.size() >=
|
|
kMaxNumberOfRecordedCommitTelemetries) {
|
|
recentCommitTelemetries_.erase(recentCommitTelemetries_.begin());
|
|
}
|
|
|
|
recentCommitTelemetries_.push_back(telemetry);
|
|
}
|
|
|
|
TelemetryDuration SurfaceTelemetry::getLayoutTime() const {
|
|
return layoutTime_;
|
|
}
|
|
|
|
TelemetryDuration SurfaceTelemetry::getCommitTime() const {
|
|
return commitTime_;
|
|
}
|
|
|
|
TelemetryDuration SurfaceTelemetry::getDiffTime() const {
|
|
return diffTime_;
|
|
}
|
|
|
|
TelemetryDuration SurfaceTelemetry::getMountTime() const {
|
|
return mountTime_;
|
|
}
|
|
|
|
int SurfaceTelemetry::getNumberOfTransactions() const {
|
|
return numberOfTransactions_;
|
|
}
|
|
|
|
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
|