// Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved // Please see LICENSE.md in repository root for license information // https://github.com/AtomicGameEngine/AtomicGameEngine #pragma once #include #include #include namespace Atomic { class JSVM; class JSMetrics : public Object { OBJECT(JSMetrics); struct ObjectMetric { String classname; int count; }; struct NodeMetric { String name; int count; }; public: /// Construct. JSMetrics(Context* context, JSVM* vm); /// Destruct. virtual ~JSMetrics(); void Capture(); void Dump(); void DumpNodes(); void DumpJSComponents(); private: WeakPtr vm_; // Object HashMap objectMetrics_; // Nodes HashMap nodeMetrics_; }; }