2016-12-20 13 views
1

反応するネイティブアプリからUIとJS FPSを測定するパフォーマンステストケースを作成します。React-NativeはRCTPerfMonitorからUIとJS FPSを取得します

パフォーマンスモニタを呼び出してFPSをプログラムで取得するにはどうすればよいですか?

(現在、我々が揺れメニューから[PCTPerMonitor]パフォーマンスモニタを有効にすることができます。)

答えて

0

私たちは、更新した後、次のコード

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSDictionary *settings = [defaults objectForKey:@"RCTDevMenu"]; 
NSMutableDictionary *newSettings = [NSMutableDictionary dictionaryWithDictionary:settings]; 
newSettings[@"RCTPerfMonitorKey"] = @1; 
[defaults setObject:newSettings forKey:@"RCTDevMenu"]; 
[defaults synchronize]; 

により、プログラムの設定をパフォーマンスモニタを有効にすることができ、それは意志RCTDevMenuから通知 'settingsDidChange'をトリガーします。

パフォーマンスモニタが有効になってからFPSを取得できます。これは、その後、我々は、パフォーマンスモニタのサブビューを横断し、FPSを取得するためにRCTFPSGraphインスタンスを保存することができます(最後のオブジェクトでなければなりません)ウィンドウで

UIView *performanceMonitorView = self.window.subviews.lastObject; 
for (id view in performanceMonitorView.subviews) { 
    if ([view isKindOfClass:[RCTFPSGraph class]]){ 
    RCTFPSGraph *fpsGraph = (RCTFPSGraph *)view; 
    NSLog(@"FPS Graph minFPS: %zd maxFPS: %zd fps: %zd", fpsGraph.minFPS, fpsGraph.maxFPS, fpsGraph.FPS); 
    } 
} 

をパフォーマンスモニタを追加します。

関連する問題