全局启用/禁用开关
性能监控相比于为终端用户提供实际功能而言,是应用程序中一个重要性明显较低的部分。您可能会在生产环境中发现性能分析器设置方面的一些问题,或者发现库中的错误(请反馈它们!❤️)。理想情况下,您应该设置一个自定义的 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>);};
大多数应用程序都有某种功能标志设置。这些功能标志要么通过构建时常量驱动,要么由服务器提供。我们建议通过这样的功能标志来控制性能分析器的启用状态。理想情况下,由服务器驱动的功能标志将提供最大的灵活性,因为您可以完全关闭生产环境中的性能分析器,而无需发布新的构建。