Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Side by Side Diff: runtime/vm/service.cc

Issue 2996803002: Add current rss and embedder name to Observatory (Closed)
Patch Set: Managing null currentRSS in graph tooltip Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« runtime/include/dart_tools_api.h ('K') | « runtime/vm/service.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/service.h" 5 #include "vm/service.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "include/dart_native_api.h" 8 #include "include/dart_native_api.h"
9 #include "platform/globals.h" 9 #include "platform/globals.h"
10 10
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 // TODO(johnmccutchan): Unify embedder service handler lists and their APIs. 101 // TODO(johnmccutchan): Unify embedder service handler lists and their APIs.
102 EmbedderServiceHandler* Service::isolate_service_handler_head_ = NULL; 102 EmbedderServiceHandler* Service::isolate_service_handler_head_ = NULL;
103 EmbedderServiceHandler* Service::root_service_handler_head_ = NULL; 103 EmbedderServiceHandler* Service::root_service_handler_head_ = NULL;
104 struct ServiceMethodDescriptor; 104 struct ServiceMethodDescriptor;
105 const ServiceMethodDescriptor* FindMethod(const char* method_name); 105 const ServiceMethodDescriptor* FindMethod(const char* method_name);
106 106
107 // Support for streams defined in embedders. 107 // Support for streams defined in embedders.
108 Dart_ServiceStreamListenCallback Service::stream_listen_callback_ = NULL; 108 Dart_ServiceStreamListenCallback Service::stream_listen_callback_ = NULL;
109 Dart_ServiceStreamCancelCallback Service::stream_cancel_callback_ = NULL; 109 Dart_ServiceStreamCancelCallback Service::stream_cancel_callback_ = NULL;
110 Dart_GetVMServiceAssetsArchive Service::get_service_assets_callback_ = NULL; 110 Dart_GetVMServiceAssetsArchive Service::get_service_assets_callback_ = NULL;
111 Dart_GetEmbedderInformation Service::get_embedder_information_callback_ = NULL;
111 112
112 // These are the set of streams known to the core VM. 113 // These are the set of streams known to the core VM.
113 StreamInfo Service::vm_stream("VM"); 114 StreamInfo Service::vm_stream("VM");
114 StreamInfo Service::isolate_stream("Isolate"); 115 StreamInfo Service::isolate_stream("Isolate");
115 StreamInfo Service::debug_stream("Debug"); 116 StreamInfo Service::debug_stream("Debug");
116 StreamInfo Service::gc_stream("GC"); 117 StreamInfo Service::gc_stream("GC");
117 StreamInfo Service::echo_stream("_Echo"); 118 StreamInfo Service::echo_stream("_Echo");
118 StreamInfo Service::graph_stream("_Graph"); 119 StreamInfo Service::graph_stream("_Graph");
119 StreamInfo Service::logging_stream("_Logging"); 120 StreamInfo Service::logging_stream("_Logging");
120 StreamInfo Service::extension_stream("Extension"); 121 StreamInfo Service::extension_stream("Extension");
(...skipping 1098 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 Dart_ServiceStreamCancelCallback cancel_callback) { 1220 Dart_ServiceStreamCancelCallback cancel_callback) {
1220 stream_listen_callback_ = listen_callback; 1221 stream_listen_callback_ = listen_callback;
1221 stream_cancel_callback_ = cancel_callback; 1222 stream_cancel_callback_ = cancel_callback;
1222 } 1223 }
1223 1224
1224 void Service::SetGetServiceAssetsCallback( 1225 void Service::SetGetServiceAssetsCallback(
1225 Dart_GetVMServiceAssetsArchive get_service_assets) { 1226 Dart_GetVMServiceAssetsArchive get_service_assets) {
1226 get_service_assets_callback_ = get_service_assets; 1227 get_service_assets_callback_ = get_service_assets;
1227 } 1228 }
1228 1229
1230 void Service::SetGetEmbedderInformationCallback(
1231 Dart_GetEmbedderInformation get_embedder_information) {
1232 get_embedder_information_callback_ = get_embedder_information;
1233 }
1234
1235 int64_t Service::CurrentRSS() {
1236 if (get_embedder_information_callback_ == NULL) {
1237 return -1;
1238 }
1239 return get_embedder_information_callback_()->current_rss;
1240 }
1241
1242 int64_t Service::MaxRSS() {
1243 if (get_embedder_information_callback_ == NULL) {
1244 return -1;
1245 }
1246 return get_embedder_information_callback_()->max_rss;
1247 }
1248
1229 EmbedderServiceHandler* Service::FindRootEmbedderHandler(const char* name) { 1249 EmbedderServiceHandler* Service::FindRootEmbedderHandler(const char* name) {
1230 EmbedderServiceHandler* current = root_service_handler_head_; 1250 EmbedderServiceHandler* current = root_service_handler_head_;
1231 while (current != NULL) { 1251 while (current != NULL) {
1232 if (strcmp(name, current->name()) == 0) { 1252 if (strcmp(name, current->name()) == 0) {
1233 return current; 1253 return current;
1234 } 1254 }
1235 current = current->next(); 1255 current = current->next();
1236 } 1256 }
1237 return NULL; 1257 return NULL;
1238 } 1258 }
(...skipping 2576 matching lines...) Expand 10 before | Expand all | Expand 10 after
3815 return; 3835 return;
3816 } 3836 }
3817 jsobj.AddProperty("architectureBits", static_cast<intptr_t>(kBitsPerWord)); 3837 jsobj.AddProperty("architectureBits", static_cast<intptr_t>(kBitsPerWord));
3818 jsobj.AddProperty("targetCPU", CPU::Id()); 3838 jsobj.AddProperty("targetCPU", CPU::Id());
3819 jsobj.AddProperty("hostCPU", HostCPUFeatures::hardware()); 3839 jsobj.AddProperty("hostCPU", HostCPUFeatures::hardware());
3820 jsobj.AddProperty("version", Version::String()); 3840 jsobj.AddProperty("version", Version::String());
3821 jsobj.AddProperty("_profilerMode", FLAG_profile_vm ? "VM" : "Dart"); 3841 jsobj.AddProperty("_profilerMode", FLAG_profile_vm ? "VM" : "Dart");
3822 jsobj.AddProperty64("_nativeZoneMemoryUsage", 3842 jsobj.AddProperty64("_nativeZoneMemoryUsage",
3823 ApiNativeScope::current_memory_usage()); 3843 ApiNativeScope::current_memory_usage());
3824 jsobj.AddProperty64("pid", OS::ProcessId()); 3844 jsobj.AddProperty64("pid", OS::ProcessId());
3825 jsobj.AddProperty64("_maxRSS", OS::MaxRSS()); 3845 if (get_embedder_information_callback_ != NULL) {
3846 const Dart_EmbedderInformation* info = get_embedder_information_callback_();
3847 ASSERT(info != NULL);
3848 if (info->name != NULL) {
3849 jsobj.AddProperty("_embedder", info->name);
3850 }
3851 if (info->max_rss > 0) {
3852 jsobj.AddProperty64("_maxRSS", info->max_rss);
3853 }
3854 if (info->max_rss > 0) {
3855 jsobj.AddProperty64("_currentRSS", info->current_rss);
3856 }
3857 }
3826 jsobj.AddPropertyTimeMillis( 3858 jsobj.AddPropertyTimeMillis(
3827 "startTime", OS::GetCurrentTimeMillis() - Dart::UptimeMillis()); 3859 "startTime", OS::GetCurrentTimeMillis() - Dart::UptimeMillis());
3828 MallocHooks::PrintToJSONObject(&jsobj); 3860 MallocHooks::PrintToJSONObject(&jsobj);
3829 // Construct the isolate list. 3861 // Construct the isolate list.
3830 { 3862 {
3831 JSONArray jsarr(&jsobj, "isolates"); 3863 JSONArray jsarr(&jsobj, "isolates");
3832 ServiceIsolateVisitor visitor(&jsarr); 3864 ServiceIsolateVisitor visitor(&jsarr);
3833 Isolate::VisitIsolates(&visitor); 3865 Isolate::VisitIsolates(&visitor);
3834 } 3866 }
3835 } 3867 }
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
4126 if (strcmp(method_name, method.name) == 0) { 4158 if (strcmp(method_name, method.name) == 0) {
4127 return &method; 4159 return &method;
4128 } 4160 }
4129 } 4161 }
4130 return NULL; 4162 return NULL;
4131 } 4163 }
4132 4164
4133 #endif // !PRODUCT 4165 #endif // !PRODUCT
4134 4166
4135 } // namespace dart 4167 } // namespace dart
OLDNEW
« runtime/include/dart_tools_api.h ('K') | « runtime/vm/service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698