跳到主要内容

全局启用/禁用开关

性能监控相比于为终端用户提供实际功能而言,是应用程序中一个重要性明显较低的部分。您可能会在生产环境中发现性能分析器设置方面的一些问题,或者发现库中的错误(请反馈它们!❤️)。理想情况下,您应该设置一个自定义的 errorHandler 来监控这些情况。

在任何情况下,能够完全关闭性能监控,并让应用程序表现得好像从未集成该库一样,都是很有用的。

该软件包尽力来促进这一点。您可以通过将 enabled prop 设置到 PerformanceProfiler 组件来动态地打开或关闭性能分析器。

tsx
const App = () => {
const onReportPrepared = useCallback((report: RenderPassReport) => {
monorail.produce(convertReportToMonorailObject(report));
}, []);
const isProfilerEnabled = useFeatureFlag('PERFORMANCE_PROFILER');
return (
<PerformanceProfiler onReportPrepared={onReportPrepared} enabled={isProfilerEnabled}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Screen1" component={Screen1} />
<Stack.Screen name="Screen2" component={Screen2} />
</Stack.Navigator>
</NavigationContainer>
</PerformanceProfiler>
);
};
tsx
const App = () => {
const onReportPrepared = useCallback((report: RenderPassReport) => {
monorail.produce(convertReportToMonorailObject(report));
}, []);
const isProfilerEnabled = useFeatureFlag('PERFORMANCE_PROFILER');
return (
<PerformanceProfiler onReportPrepared={onReportPrepared} enabled={isProfilerEnabled}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Screen1" component={Screen1} />
<Stack.Screen name="Screen2" component={Screen2} />
</Stack.Navigator>
</NavigationContainer>
</PerformanceProfiler>
);
};

大多数应用程序都有某种功能标志设置。这些功能标志要么通过构建时常量驱动,要么由服务器提供。我们建议通过这样的功能标志来控制性能分析器的启用状态。理想情况下,由服务器驱动的功能标志将提供最大的灵活性,因为您可以完全关闭生产环境中的性能分析器,而无需发布新的构建。