mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-02-03 22:43:35 +08:00
Add perf markers for cold start
Summary: public Adds useful systrace perf markers for cold start analysis Reviewed By: mikearmstrong001 Differential Revision: D2695629 fb-gh-sync-id: d964f28a1f3e10a13c441a17b0300c980d4914e8
This commit is contained in:
committed by
facebook-github-bot-0
parent
388d8c8f9b
commit
ca016e4eb3
@@ -13,7 +13,6 @@ import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -186,32 +185,38 @@ public class NativeModuleRegistry {
|
||||
}
|
||||
|
||||
public NativeModuleRegistry build() {
|
||||
JsonFactory jsonFactory = new JsonFactory();
|
||||
StringWriter writer = new StringWriter();
|
||||
Systrace.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "CreateJSON");
|
||||
String moduleDefinitionJson;
|
||||
try {
|
||||
JsonGenerator jg = jsonFactory.createGenerator(writer);
|
||||
jg.writeStartObject();
|
||||
for (ModuleDefinition module : mModuleDefinitions) {
|
||||
jg.writeObjectFieldStart(module.name);
|
||||
jg.writeNumberField("moduleID", module.id);
|
||||
jg.writeObjectFieldStart("methods");
|
||||
for (int i = 0; i < module.methods.size(); i++) {
|
||||
MethodRegistration method = module.methods.get(i);
|
||||
jg.writeObjectFieldStart(method.name);
|
||||
jg.writeNumberField("methodID", i);
|
||||
jg.writeStringField("type", method.method.getType());
|
||||
JsonFactory jsonFactory = new JsonFactory();
|
||||
StringWriter writer = new StringWriter();
|
||||
try {
|
||||
JsonGenerator jg = jsonFactory.createGenerator(writer);
|
||||
jg.writeStartObject();
|
||||
for (ModuleDefinition module : mModuleDefinitions) {
|
||||
jg.writeObjectFieldStart(module.name);
|
||||
jg.writeNumberField("moduleID", module.id);
|
||||
jg.writeObjectFieldStart("methods");
|
||||
for (int i = 0; i < module.methods.size(); i++) {
|
||||
MethodRegistration method = module.methods.get(i);
|
||||
jg.writeObjectFieldStart(method.name);
|
||||
jg.writeNumberField("methodID", i);
|
||||
jg.writeStringField("type", method.method.getType());
|
||||
jg.writeEndObject();
|
||||
}
|
||||
jg.writeEndObject();
|
||||
module.target.writeConstantsField(jg, "constants");
|
||||
jg.writeEndObject();
|
||||
}
|
||||
jg.writeEndObject();
|
||||
module.target.writeConstantsField(jg, "constants");
|
||||
jg.writeEndObject();
|
||||
jg.close();
|
||||
} catch (IOException ioe) {
|
||||
throw new RuntimeException("Unable to serialize Java module configuration", ioe);
|
||||
}
|
||||
jg.writeEndObject();
|
||||
jg.close();
|
||||
} catch (IOException ioe) {
|
||||
throw new RuntimeException("Unable to serialize Java module configuration", ioe);
|
||||
moduleDefinitionJson = writer.getBuffer().toString();
|
||||
} finally {
|
||||
Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
|
||||
}
|
||||
String moduleDefinitionJson = writer.getBuffer().toString();
|
||||
return new NativeModuleRegistry(mModuleDefinitions, mModuleInstances, moduleDefinitionJson);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user