hermes-engine
Advanced tools
@@ -36,2 +36,3 @@ /* | ||
| std::string collectionType; | ||
| std::string cause; | ||
| std::chrono::milliseconds duration; | ||
@@ -38,0 +39,0 @@ std::chrono::milliseconds cpuDuration; |
@@ -334,8 +334,13 @@ /* | ||
| void collectGarbage() override { | ||
| plain().instrumentation().collectGarbage(); | ||
| void collectGarbage(std::string cause) override { | ||
| plain().instrumentation().collectGarbage(std::move(cause)); | ||
| } | ||
| void startTrackingHeapObjectStackTraces() override { | ||
| plain().instrumentation().startTrackingHeapObjectStackTraces(); | ||
| void startTrackingHeapObjectStackTraces( | ||
| std::function<void( | ||
| uint64_t, | ||
| std::chrono::microseconds, | ||
| std::vector<HeapStatsUpdate>)> callback) override { | ||
| plain().instrumentation().startTrackingHeapObjectStackTraces( | ||
| std::move(callback)); | ||
| } | ||
@@ -342,0 +347,0 @@ |
@@ -10,4 +10,6 @@ /* | ||
| #include <chrono> | ||
| #include <iosfwd> | ||
| #include <string> | ||
| #include <tuple> | ||
| #include <unordered_map> | ||
@@ -53,8 +55,23 @@ | ||
| /// perform a full garbage collection | ||
| virtual void collectGarbage() = 0; | ||
| /// Perform a full garbage collection. | ||
| /// \param cause The cause of this collection, as it should be reported in | ||
| /// logs. | ||
| virtual void collectGarbage(std::string cause) = 0; | ||
| /// A HeapStatsUpdate is a tuple of the fragment index, the number of objects | ||
| /// in that fragment, and the number of bytes used by those objects. | ||
| /// A "fragment" is a view of all objects allocated within a time slice. | ||
| using HeapStatsUpdate = std::tuple<uint64_t, uint64_t, uint64_t>; | ||
| /// Start capturing JS stack-traces for all JS heap allocated objects. These | ||
| /// can be accessed via \c ::createSnapshotToFile(). | ||
| virtual void startTrackingHeapObjectStackTraces() = 0; | ||
| /// \param fragmentCallback If present, invoke this callback every so often | ||
| /// with the most recently seen object ID, and a list of fragments that have | ||
| /// been updated. This callback will be invoked on the same thread that the | ||
| /// runtime is using. | ||
| virtual void startTrackingHeapObjectStackTraces( | ||
| std::function<void( | ||
| uint64_t lastSeenObjectID, | ||
| std::chrono::microseconds timestamp, | ||
| std::vector<HeapStatsUpdate> stats)> fragmentCallback) = 0; | ||
@@ -61,0 +78,0 @@ /// Stop capture JS stack-traces for JS heap allocated objects. |
+1
-1
| { | ||
| "name": "hermes-engine", | ||
| "version": "0.7.1", | ||
| "version": "0.7.2", | ||
| "private": false, | ||
@@ -5,0 +5,0 @@ "description": "A JavaScript engine optimized for running React Native on Android", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
19996759
-5.61%