Exemple #1
0
 public Inspector(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot unpackedCrawl, PackedMemorySnapshot snapshot)
 {
     _unpackedCrawl            = unpackedCrawl;
     _hostWindow               = hostWindow;
     _shortestPathToRootFinder = new ShortestPathToRootFinder(unpackedCrawl);
     _primitiveValueReader     = new PrimitiveValueReader(_unpackedCrawl.virtualMachineInformation, _unpackedCrawl.managedHeap);
 }
 internal FilterItems(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot unpackedCrawl, CrawledMemorySnapshot previousUnpackedCrawl)
 {
     this._unpackedCrawl         = unpackedCrawl;
     this._previousUnpackedCrawl = previousUnpackedCrawl;
     this._hostWindow            = hostWindow;
     this._currentFilter         = Filters.Everything;
 }
Exemple #3
0
        public void Setup(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot _unpackedCrawl, HashSet <int> newlyAdded)
        {
            this._unpackedCrawl = _unpackedCrawl;
            this._newlyAdded    = newlyAdded;
            this._hostWindow    = hostWindow;

            RefreshCaches();
            RefreshMesh();
        }
Exemple #4
0
        public void Setup(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot _unpackedCrawl)
        {
            if (_unpackedCrawl == null)
            {
                return;
            }

            Setup(hostWindow, _unpackedCrawl, null);
        }
Exemple #5
0
        public Inspector(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot unpackedCrawl, PackedMemorySnapshot snapshot)
        {
            _unpackedCrawl            = unpackedCrawl;
            _hostWindow               = hostWindow;
            _shortestPathToRootFinder = new ShortestPathToRootFinder(unpackedCrawl);
            _primitiveValueReader     = new PrimitiveValueReader(_unpackedCrawl.virtualMachineInformation, _unpackedCrawl.managedHeap);

            _textureBack    = Resources.Load("back") as Texture2D;
            _textureForward = Resources.Load("forward") as Texture2D;
        }
        public void Setup(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot _unpackedCrawl)
        {
            this._unpackedCrawl = _unpackedCrawl;
            this._hostWindow    = hostWindow;

            _ZoomArea = new ZoomArea(true)
            {
                vRangeMin     = -110f,
                vRangeMax     = 110f,
                hRangeMin     = -110f,
                hRangeMax     = 110f,
                hBaseRangeMin = -110f,
                vBaseRangeMin = -110f,
                hBaseRangeMax = 110f,
                vBaseRangeMax = 110f,
                shownArea     = new Rect(-110f, -110f, 220f, 220f)
            };
            RefreshCaches();
            RefreshMesh();
        }
 internal ViewCanvas(MemoryProfilerWindow hostWindow)
 {
     _hostWindow = hostWindow;
 }
    static void RequestStackSummary()
    {
#if UNITY_EDITOR
        if (NetManager.Instance == null)
        {
            return;
        }
        MemoryProfilerWindow.MemoryProfilerWindow w = EditorWindow.GetWindow <MemoryProfilerWindow.MemoryProfilerWindow>("MemoryProfilerWindow");
        if (w.GetType().Name == "MemoryProfilerWindow")
        {
            if (w.UnpackedCrawl == null)
            {
                return;
            }

            Dictionary <string, List <stackParamater> > categoryDict = new Dictionary <string, List <stackParamater> >();

            foreach (var trackCategory in SceneGraphExtractor.MemCategories)
            {
                if (!categoryDict.ContainsKey(trackCategory))
                {
                    categoryDict.Add(trackCategory, new List <stackParamater>());
                }
            }

            foreach (var obj in w.UnpackedCrawl.nativeObjects)
            {
                if (categoryDict.ContainsKey(obj.className))
                {
                    List <stackParamater> list;
                    categoryDict.TryGetValue(obj.className, out list);
                    var info = new stackParamater();
                    info.InstanceID = obj.instanceID;
                    info.Size       = obj.size;
                    list.Add(info);
                }
            }

            UsCmd cmd = new UsCmd();
            cmd.WriteInt16((short)eNetCmd.CL_RequestStackSummary);
            cmd.WriteString("begin");
            NetManager.Instance.Send(cmd);

            int passCountPerCmd = 500;
            foreach (var categoryPair in categoryDict)
            {
                int count   = categoryPair.Value.Count;
                int times   = count / passCountPerCmd;
                int residue = count % passCountPerCmd;

                for (int i = 0; i < times; i++)
                {
                    cmd = new UsCmd();
                    cmd.WriteInt16((short)eNetCmd.CL_RequestStackSummary);
                    cmd.WriteString(categoryPair.Key);
                    cmd.WriteInt32(passCountPerCmd);
                    for (int j = i * passCountPerCmd; j < (i + 1) * passCountPerCmd; j++)
                    {
                        var info = categoryPair.Value[j];
                        cmd.WriteInt32(info.InstanceID);
                        cmd.WriteInt32(info.Size);
                    }
                    NetManager.Instance.Send(cmd);
                }

                if (residue > 0)
                {
                    cmd = new UsCmd();
                    cmd.WriteInt16((short)eNetCmd.CL_RequestStackSummary);
                    cmd.WriteString(categoryPair.Key);
                    cmd.WriteInt32(residue);
                    for (int i = 0; i < residue; i++)
                    {
                        var info = categoryPair.Value[times * passCountPerCmd + i];
                        cmd.WriteInt32(info.InstanceID);
                        cmd.WriteInt32(info.Size);
                    }
                    NetManager.Instance.Send(cmd);
                }
            }

            cmd = new UsCmd();
            cmd.WriteInt16((short)eNetCmd.CL_RequestStackSummary);
            cmd.WriteString("end");
            cmd.WriteInt32(categoryDict.Count);
            foreach (var categoryPair in categoryDict)
            {
                cmd.WriteString(categoryPair.Key);
                cmd.WriteInt32(categoryPair.Value.Count);
                int categoryTotalSize = 0;
                foreach (var info in categoryPair.Value)
                {
                    categoryTotalSize += info.Size;
                }
                cmd.WriteInt32(categoryTotalSize);
            }
            NetManager.Instance.Send(cmd);
        }
#endif
    }
Exemple #9
0
 internal void Setup(MemoryProfilerWindow hostWindow, CrawledMemorySnapshot unpackedCrawl)
 {
     this.m_unpackedCrawl = unpackedCrawl;
     this.m_hostWindow    = hostWindow;
     m_table.InvalidateData();
 }