[observatory] Report AppJIT/AOT feature string.

TEST=examine main page
Change-Id: I368b96e1a871a8d5da4cfab5c3fcf7c297a589be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215945
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak 2021-10-14 00:05:01 +00:00 committed by commit-bot@chromium.org
parent 519c222101
commit b5c911e2a3
5 changed files with 24 additions and 2 deletions

View file

@ -258,6 +258,16 @@ class VMViewElement extends CustomElement implements Renderable {
..classes = ['memberValue']
..text = _vm.version
],
new DivElement()
..classes = ['memberItem']
..children = <Element>[
new DivElement()
..classes = ['memberName']
..text = 'features',
new DivElement()
..classes = ['memberValue']
..text = _vm.features
],
new DivElement()
..classes = ['memberItem']
..children = <Element>[

View file

@ -26,6 +26,8 @@ abstract class VM implements VMRef {
/// The Dart VM version string.
String get version;
String get features;
String get embedder;
/// The amount of memory currently allocated by native code in zones.

View file

@ -672,6 +672,7 @@ abstract class VM extends ServiceObjectOwner implements M.VM {
final List<Service> services = <Service>[];
String version = 'unknown';
String features = 'unknown';
String hostCPU = 'unknown';
String targetCPU = 'unknown';
String embedder = 'unknown';
@ -1030,6 +1031,7 @@ abstract class VM extends ServiceObjectOwner implements M.VM {
_loaded = true;
version = map['version'];
features = map['_features'] ?? 'unknown';
hostCPU = map['hostCPU'];
targetCPU = map['targetCPU'];
architectureBits = map['architectureBits'];

View file

@ -1091,7 +1091,7 @@ const char* Dart::FeaturesString(IsolateGroup* isolate_group,
do { \
const bool value = \
isolate_group != nullptr ? isolate_group->name() : flag; \
ADD_FLAG(#name, value); \
ADD_FLAG(name, value); \
} while (0);
if (Snapshot::IncludesCode(kind)) {
@ -1134,7 +1134,9 @@ const char* Dart::FeaturesString(IsolateGroup* isolate_group,
#error What architecture?
#endif
#if defined(DART_COMPRESSED_POINTERS)
buffer.AddString(" compressed");
buffer.AddString(" compressed-pointers");
#else
buffer.AddString(" no-compressed-pointers");
#endif
}

View file

@ -4889,6 +4889,12 @@ void Service::PrintJSONForVM(JSONStream* js, bool ref) {
jsobj.AddProperty("operatingSystem", OS::Name());
jsobj.AddProperty("targetCPU", CPU::Id());
jsobj.AddProperty("version", Version::String());
#if defined(DART_PRECOMPILED_RUNTIME)
Snapshot::Kind kind = Snapshot::kFullAOT;
#else
Snapshot::Kind kind = Snapshot::kFullJIT;
#endif
jsobj.AddProperty("_features", Dart::FeaturesString(nullptr, true, kind));
jsobj.AddProperty("_profilerMode", FLAG_profile_vm ? "VM" : "Dart");
jsobj.AddProperty64("_nativeZoneMemoryUsage",
ApiNativeScope::current_memory_usage());