コード例 #1
0
ファイル: TestProfiler.cs プロジェクト: midgithub/notes
        void Print1()
        {
            {
                var r = ProfilerData.GetLuaSrcResMem();
                LogMgr.LogError("lua文件数 : " + r.count + ",   内存 : " + r.MB + " MB");
                LogMgr.LogError("lua总内存 : " + ProfilerData.GetLuaRuntimeMem() + " MB");
            }

            {
                var r = ProfilerData.GetMemByType <TextAsset>((a) =>
                {
                    return(ProfilerData.IsLua(a.name));
                });
                LogMgr.LogError("### 实际 lua文件数 : " + r.count + ",   内存 : " + r.MB + " MB");
            }

            {
                HashSet <string> set = new HashSet <string>();
                var r = ProfilerData.GetMemByType <TextAsset>((a) =>
                {
                    var ln = a.name.ToLower();
                    if (set.Contains(ln))
                    {
                        return(false);
                    }
                    set.Add(ln);
                    return(ln.Contains(".lua"));
                });
                LogMgr.LogError("### 实际 lua文件数 2 : " + r.count + ",   内存 : " + r.MB + " MB");
            }

            {
                var r = ProfilerData.GetCSVResMem();
                LogMgr.LogError("csv文件数 : " + r.count + ",   内存 : " + r.MB + " MB");
            }

            {
                nameSet.Clear();
                var r = ProfilerData.GetMemByType <TextAsset>((a) =>
                {
                    if (nameSet.Contains(a.name.ToLower()))
                    {
                        return(false);
                    }
                    nameSet.Add(a.name.ToLower());
                    return(ProfilerData.IsCSV(a.name));
                });
                LogMgr.LogError("### 实际 csv文件数 : " + r.count + ",   内存 : " + r.MB + " MB");
            }

            {
                var r = ProfilerData.GetMemByType <Texture>((a) =>
                {
                    return(!string.IsNullOrEmpty(a.name));
                });
                LogMgr.LogError("纹理数 : " + r.count + ",   纹理内存 : " + r.MB + " MB");
            }
        }
コード例 #2
0
ファイル: ProfilerGUI.cs プロジェクト: midgithub/notes
        private void Update()
        {
            if (!ProfilerData.IsProfiling)
            {
                return;
            }

            var diff = Time.time - lastTime;

            if (diff <= 1f)
            {
                return;
            }
            lastTime = Time.time;

#if UNITY_EDITOR
            //drawcall信息,只有在编辑器内有效
            {
                drawCallCountText = string.Empty;
                var          text  = UnityEditorInternal.ProfilerDriver.GetOverviewText(UnityEditorInternal.ProfilerArea.Rendering, UnityEditorInternal.ProfilerDriver.lastFrameIndex);
                const string tag   = "Draw Calls: ";
                int          index = text.IndexOf(tag);
                if (index >= 0)
                {
                    index += tag.Length;
                    int index2 = -1;
                    for (int i = index; i < text.Length; i++)
                    {
                        char ch = text[i];
                        if (!char.IsDigit(ch))
                        {
                            index2 = i;
                            break;
                        }
                    }
                    if (index2 > index)
                    {
                        drawCallCountText = text.Substring(index, index2 - index);
                    }
                }
            }
#endif

            totalMem    = ProfilerData.GetTotalMem();
            unusedMem   = ProfilerData.GetUnusedMem();
            monoHeapMem = ProfilerData.GetMonoHeapMem();
            monoUsedMem = ProfilerData.GetMonoUsedMem();
            texResult   = ProfilerData.GetMemByType <Texture>((a) =>
            {
                return(!string.IsNullOrEmpty(a.name));
            });
            meshResult = ProfilerData.GetMemByType <Mesh>((a) =>
            {
                return(!string.IsNullOrEmpty(a.name));
            });
            animClipResult = ProfilerData.GetMemByType <AnimationClip>((a) =>
            {
                return(!string.IsNullOrEmpty(a.name));
            });

            luaNameSet.Clear();
            luaResult = ProfilerData.GetMemByType <TextAsset>((a) =>
            {
                var ln = a.name.ToLower();
                if (luaNameSet.Contains(ln))
                {
                    return(false);
                }
                luaNameSet.Add(ln);
                return(ln.Contains(".lua"));
            });

            //csvNameSet.Clear();
            //csvResult = ProfilerData.GetMemByType<TextAsset>((a) =>
            //{
            //    var ln = a.name.ToLower();
            //    if (csvNameSet.Contains(ln))
            //    {
            //        return false;
            //    }
            //    csvNameSet.Add(ln);
            //    return ProfilerData.IsCSV(ln);
            //});

            luaMem = ProfilerData.GetLuaRuntimeMem();
        }