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

Side by Side Diff: include/v8.h

Issue 261037: Add an API to V8 to get simple heap statistics. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2007-2009 the V8 project authors. All rights reserved. 1 // Copyright 2007-2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2085 matching lines...) Expand 10 before | Expand all | Expand 10 after
2096 enum ProfilerModules { 2096 enum ProfilerModules {
2097 PROFILER_MODULE_NONE = 0, 2097 PROFILER_MODULE_NONE = 0,
2098 PROFILER_MODULE_CPU = 1, 2098 PROFILER_MODULE_CPU = 1,
2099 PROFILER_MODULE_HEAP_STATS = 1 << 1, 2099 PROFILER_MODULE_HEAP_STATS = 1 << 1,
2100 PROFILER_MODULE_JS_CONSTRUCTORS = 1 << 2, 2100 PROFILER_MODULE_JS_CONSTRUCTORS = 1 << 2,
2101 PROFILER_MODULE_HEAP_SNAPSHOT = 1 << 16 2101 PROFILER_MODULE_HEAP_SNAPSHOT = 1 << 16
2102 }; 2102 };
2103 2103
2104 2104
2105 /** 2105 /**
2106 * Collection of V8 heap information.
2107 *
2108 * Instances of this class can be passed to v8::V8::HeapStatistics to
2109 * get heap statistics from V8.
2110 */
2111 class V8EXPORT HeapStatistics {
2112 public:
2113 HeapStatistics();
2114 size_t total_heap_size() { return total_heap_size_; }
2115 size_t used_heap_size() { return used_heap_size_; }
2116
2117 private:
2118 void set_total_heap_size(size_t size) { total_heap_size_ = size; }
2119 void set_used_heap_size(size_t size) { used_heap_size_ = size; }
2120
2121 size_t total_heap_size_;
2122 size_t used_heap_size_;
2123
2124 friend class V8;
2125 };
2126
2127
2128 /**
2106 * Container class for static utility functions. 2129 * Container class for static utility functions.
2107 */ 2130 */
2108 class V8EXPORT V8 { 2131 class V8EXPORT V8 {
2109 public: 2132 public:
2110 /** Set the callback to invoke in case of fatal errors. */ 2133 /** Set the callback to invoke in case of fatal errors. */
2111 static void SetFatalErrorHandler(FatalErrorCallback that); 2134 static void SetFatalErrorHandler(FatalErrorCallback that);
2112 2135
2113 /** 2136 /**
2114 * Ignore out-of-memory exceptions. 2137 * Ignore out-of-memory exceptions.
2115 * 2138 *
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
2345 * Releases any resources used by v8 and stops any utility threads 2368 * Releases any resources used by v8 and stops any utility threads
2346 * that may be running. Note that disposing v8 is permanent, it 2369 * that may be running. Note that disposing v8 is permanent, it
2347 * cannot be reinitialized. 2370 * cannot be reinitialized.
2348 * 2371 *
2349 * It should generally not be necessary to dispose v8 before exiting 2372 * It should generally not be necessary to dispose v8 before exiting
2350 * a process, this should happen automatically. It is only necessary 2373 * a process, this should happen automatically. It is only necessary
2351 * to use if the process needs the resources taken up by v8. 2374 * to use if the process needs the resources taken up by v8.
2352 */ 2375 */
2353 static bool Dispose(); 2376 static bool Dispose();
2354 2377
2378 /**
2379 * Get statistics about the heap memory usage.
2380 */
2381 static void GetHeapStatistics(HeapStatistics* heap_statistics);
2355 2382
2356 /** 2383 /**
2357 * Optional notification that the embedder is idle. 2384 * Optional notification that the embedder is idle.
2358 * V8 uses the notification to reduce memory footprint. 2385 * V8 uses the notification to reduce memory footprint.
2359 * This call can be used repeatedly if the embedder remains idle. 2386 * This call can be used repeatedly if the embedder remains idle.
2360 * Returns true if the embedder should stop calling IdleNotification 2387 * Returns true if the embedder should stop calling IdleNotification
2361 * until real work has been done. This indicates that V8 has done 2388 * until real work has been done. This indicates that V8 has done
2362 * as much cleanup as it will be able to do. 2389 * as much cleanup as it will be able to do.
2363 */ 2390 */
2364 static bool IdleNotification(); 2391 static bool IdleNotification();
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
3146 3173
3147 } // namespace v8 3174 } // namespace v8
3148 3175
3149 3176
3150 #undef V8EXPORT 3177 #undef V8EXPORT
3151 #undef V8EXPORT_INLINE 3178 #undef V8EXPORT_INLINE
3152 #undef TYPE_CHECK 3179 #undef TYPE_CHECK
3153 3180
3154 3181
3155 #endif // V8_H_ 3182 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698