From b804675cac0a8366dfe172647641c95d9c42caf0 Mon Sep 17 00:00:00 2001 From: ale Date: Wed, 7 Dec 2022 20:57:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tools/InjectLua/InjectLua/Parse/LLex.cs | 2 +- .../Tools/InjectLua/InjectLua/Parse/Parse.cs | 5 +- .../java => Tools/shadowhook}/ShadowHook.java | 13 +- .../Common/Setting/LuaDeepProfilerSetting.cs | 4 +- .../LuaProfiler/Common/Struct/Sample.cs | 547 -------------- .../Hook/AndroidHook/AndroidNativeHooker.cs | 23 +- .../Hook/WindowsHook/WindowsNativeHooker.cs | 2 +- .../Assets/LuaProfiler/Core/Driver/LuaDLL.cs | 145 ++-- .../LuaProfiler/Core/Driver/LuaProfiler.cs | 11 +- .../Assets/LuaProfiler/Core/LuaHookSetup.cs | 61 +- .../LuaProfiler/Core/NetWork/MBinaryReader.cs | 42 ++ .../Core/NetWork/MBinaryReader.cs.meta | 3 + .../LuaProfiler/Core/NetWork/MBinaryWriter.cs | 114 +++ ...rkClient.cs.meta => MBinaryWriter.cs.meta} | 2 +- .../Core/NetWork/NetWorkMgr.Server.cs | 113 +++ .../NetWork/NetWorkMgr.Server.cs.meta} | 2 +- .../LuaProfiler/Core/NetWork/NetWorkMgr.cs | 302 ++++++++ .../Core/NetWork/NetWorkMgr.cs.meta | 11 + .../LuaProfiler/Core/NetWork/Packet.meta | 8 + .../Core/NetWork/Packet/LuaRefInfo.cs | 94 +++ .../Core/NetWork/Packet/LuaRefInfo.cs.meta | 3 + .../Core/NetWork/Packet/PKGDisconnect.cs | 9 + .../Core/NetWork/Packet/PKGDisconnect.cs.meta | 11 + .../Core/NetWork/Packet/PKGHeartBeat.cs | 9 + .../Core/NetWork/Packet/PKGHeartBeat.cs.meta | 11 + .../Core/NetWork/Packet/PacketBase.cs | 87 +++ .../Core/NetWork/Packet/PacketBase.cs.meta | 11 + .../{NetWorkClient.cs => Packet/Sample.cs} | 701 +++++++++--------- .../Core/NetWork/Packet/Sample.cs.meta | 3 + .../ProfilerWin/NetWork/NetWorkMgr.Client.cs | 148 ++++ .../NetWork/NetWorkMgr.Client.cs.meta | 11 + .../ProfilerWin/NetWork/NetWorkServer.cs | 467 ------------ .../TreeView/LuaProfilerTreeView.cs | 11 - .../ProfilerWin/TreeView/LuaProfilerWindow.cs | 84 ++- .../example/Assets/LuaProfiler/Plugins.meta | 2 +- .../Assets/LuaProfiler/Plugins/Android.meta | 8 + .../LuaProfiler/Plugins/Android/java.meta | 33 + .../Plugins/Android/java/ShadowHook.aar | Bin 0 -> 7662 bytes .../Plugins/Android/java/ShadowHook.aar.meta | 32 + .../LuaProfiler/Plugins/Android/libs.meta | 7 + .../Plugins/Android/libs/arm64-v8a.meta | 8 + .../Android/libs/arm64-v8a/libshadowhook.so | Bin 0 -> 317848 bytes .../libs/arm64-v8a/libshadowhook.so.meta | 0 .../Plugins/Android/libs/armeabi-v7a.meta | 7 + .../Android/libs/armeabi-v7a/libshadowhook.so | Bin 0 -> 277160 bytes .../libs/armeabi-v7a/libshadowhook.so.meta} | 19 +- .../Assets/LuaProfiler/Plugins/MikuBinary.dll | Bin 5120 -> 0 bytes .../Plugins/Android/java/ShadowHook.java.meta | 70 -- .../Android/libs/arm64-v8a/libshadowhook.so | Bin 320024 -> 0 bytes LuaProfiler/example/Assets/XLua/Src/LuaDLL.cs | 4 +- LuaProfiler/example/Assets/XLua/Src/LuaEnv.cs | 6 +- 51 files changed, 1635 insertions(+), 1631 deletions(-) rename LuaProfiler/{example/Assets/Plugins/Android/java => Tools/shadowhook}/ShadowHook.java (97%) create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs rename LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/{NetWorkClient.cs.meta => MBinaryWriter.cs.meta} (83%) create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs rename LuaProfiler/example/Assets/LuaProfiler/{Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs.meta => Core/NetWork/NetWorkMgr.Server.cs.meta} (83%) create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs.meta rename LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/{NetWorkClient.cs => Packet/Sample.cs} (77%) create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs.meta delete mode 100644 LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java/ShadowHook.aar create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java/ShadowHook.aar.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/libs.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/libs/arm64-v8a.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/libs/arm64-v8a/libshadowhook.so rename LuaProfiler/example/Assets/{ => LuaProfiler}/Plugins/Android/libs/arm64-v8a/libshadowhook.so.meta (100%) create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/libs/armeabi-v7a.meta create mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/libs/armeabi-v7a/libshadowhook.so rename LuaProfiler/example/Assets/LuaProfiler/Plugins/{MikuBinary.dll.meta => Android/libs/armeabi-v7a/libshadowhook.so.meta} (74%) delete mode 100644 LuaProfiler/example/Assets/LuaProfiler/Plugins/MikuBinary.dll delete mode 100644 LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java.meta delete mode 100644 LuaProfiler/example/Assets/Plugins/Android/libs/arm64-v8a/libshadowhook.so diff --git a/LuaProfiler/Tools/InjectLua/InjectLua/Parse/LLex.cs b/LuaProfiler/Tools/InjectLua/InjectLua/Parse/LLex.cs index 728d63ce..69f89f02 100644 --- a/LuaProfiler/Tools/InjectLua/InjectLua/Parse/LLex.cs +++ b/LuaProfiler/Tools/InjectLua/InjectLua/Parse/LLex.cs @@ -512,7 +512,7 @@ public int Length public void Replace(int start, int end, string value) { - LoadInfo.Replace(start, end + 1 - start, value); + LoadInfo.Replace(start, end - start, value); } public string ReadString(int start, int end) diff --git a/LuaProfiler/Tools/InjectLua/InjectLua/Parse/Parse.cs b/LuaProfiler/Tools/InjectLua/InjectLua/Parse/Parse.cs index 8e0ed6e8..9aa6b958 100644 --- a/LuaProfiler/Tools/InjectLua/InjectLua/Parse/Parse.cs +++ b/LuaProfiler/Tools/InjectLua/InjectLua/Parse/Parse.cs @@ -223,9 +223,8 @@ static void InsertSample(LLex l, ref int lastPos, ref int nextPos, int tokenType { lastPos = lastPos - 1; - string returnStr = l.ReadString(insertPos, lastPos - 1); - returnStr = " return miku_unpack_return_value(" + returnStr.Substring(6, returnStr.Length - 6) + ") "; - l.Replace(insertPos, lastPos - 1, returnStr); + l.Replace(insertPos, insertPos + 6, " return miku_unpack_return_value("); + l.InsertString(lastPos , ") "); nextPos = l.pos; if (tokenType == (int)TK.END) diff --git a/LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java b/LuaProfiler/Tools/shadowhook/ShadowHook.java similarity index 97% rename from LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java rename to LuaProfiler/Tools/shadowhook/ShadowHook.java index 526d52ec..0cc9c4ca 100644 --- a/LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java +++ b/LuaProfiler/Tools/shadowhook/ShadowHook.java @@ -38,14 +38,10 @@ public final class ShadowHook { private static final ILibLoader defaultLibLoader = null; private static final int defaultMode = Mode.UNIQUE.getValue(); - private static final boolean defaultDebuggable = true; + private static final boolean defaultDebuggable = false; public static int init() { - if (inited) { - return initErrno; - } - - return init(new ConfigBuilder().build()); + return init(null); } public static synchronized int init(Config config) { @@ -56,6 +52,11 @@ public static synchronized int init(Config config) { long start = System.currentTimeMillis(); + if (config == null) { + //use default parameters + config = new ConfigBuilder().build(); + } + if (!loadLibrary(config)) { initErrno = ERRNO_LOAD_LIBRARY_EXCEPTION; initCostMs = System.currentTimeMillis() - start; diff --git a/LuaProfiler/example/Assets/LuaProfiler/Common/Setting/LuaDeepProfilerSetting.cs b/LuaProfiler/example/Assets/LuaProfiler/Common/Setting/LuaDeepProfilerSetting.cs index bd862611..3c562ced 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Common/Setting/LuaDeepProfilerSetting.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Common/Setting/LuaDeepProfilerSetting.cs @@ -53,7 +53,7 @@ public static LuaDeepProfilerSetting Instance { if (instance == null) { - instance = new LuaDeepProfilerSetting(); + instance = Load(); } return instance; } @@ -315,7 +315,7 @@ public static LuaDeepProfilerSetting Load() try { - JsonUtility.FromJson(json); + result = JsonUtility.FromJson(json); } catch { diff --git a/LuaProfiler/example/Assets/LuaProfiler/Common/Struct/Sample.cs b/LuaProfiler/example/Assets/LuaProfiler/Common/Struct/Sample.cs index 88048246..c34bddef 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Common/Struct/Sample.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Common/Struct/Sample.cs @@ -61,54 +61,6 @@ public abstract class NetBase public abstract void Restore(); } - public class LuaRefInfo : NetBase - { - #region field - public byte cmd; //1添加、0移除 - public int frameCount; - public string name; - public string addr; - public byte type; //1 function 2 table - #endregion - - #region pool - private static ObjectPool m_pool = new ObjectPool(32); - public static LuaRefInfo Create() - { - LuaRefInfo r = m_pool.GetObject(); - return r; - } - - public static LuaRefInfo Create(byte cmd, string name, string addr, byte type) - { - LuaRefInfo r = m_pool.GetObject(); - r.cmd = cmd; - r.name = name; - r.addr = addr; - r.type = type; - return r; - } - - public override void Restore() - { - m_pool.Store(this); - } - - public LuaRefInfo Clone() - { - LuaRefInfo result = new LuaRefInfo(); - - result.cmd = this.cmd; - result.frameCount = this.frameCount; - result.name = this.name; - result.addr = this.addr; - result.type = this.type; - - return result; - } - #endregion - } - public class LuaDiffInfo : NetBase { #region field @@ -227,505 +179,6 @@ public class SampleData public static float power; } - public class Sample : NetBase - { - public int currentLuaMemory; - public int currentMonoMemory; - public long currentTime; - - public int calls; - public int frameCount; - public float fps; - public uint pss; - public float power; - - public int costLuaGC; - public int costMonoGC; - public string name; - public int costTime; - public Sample _father; - public MList childs = new MList(16); - public string captureUrl = null; - private string _fullName; - public bool needShow = false; - - public bool isCopy = false; - public long copySelfLuaGC = -1; - public long selfLuaGC - { - get - { - if (isCopy) return copySelfLuaGC; - long result = costLuaGC; - for (int i = 0, imax = childs.Count; i < imax; i++) - { - var item = childs[i]; - result -= item.costLuaGC; - } - return Math.Max(result, 0); - } - } - - public long copySelfMonoGC = -1; - - public long selfMonoGC - { - get - { - if (isCopy) return copySelfMonoGC; - long result = costMonoGC; - for (int i = 0, imax = childs.Count; i < imax; i++) - { - var item = childs[i]; - result -= item.costMonoGC; - } - - return Math.Max(result, 0); - } - } - - public int copySelfCostTime = -1; - public int selfCostTime - { - get - { - if (isCopy) return copySelfCostTime; - int result = costTime; - for (int i = 0, imax = childs.Count; i < imax; i++) - { - var item = childs[i]; - result -= item.costTime; - } - - return Math.Max(result, 0); - } - } - - public bool CheckSampleValid() - { - bool result = false; - do - { - if (needShow) - { - result = true; - break; - } - var setting = LuaDeepProfilerSetting.Instance; - if (setting != null && !setting.discardInvalid) - { - result = true; - break; - } - - if (costLuaGC != 0) - { - result = true; - break; - } - - if (costMonoGC != 0) - { - result = true; - break; - } - - if (costTime > 10000) - { - result = true; - break; - } - - } while (false); - - - return result; - } - - #region property - public string fullName - { - get - { - if (_father == null) return name; - - if (_fullName == null) - { - Dictionary childDict; - if (!m_fullNamePool.TryGetValue(_father.fullName, out childDict)) - { - childDict = new Dictionary(); - m_fullNamePool.Add(_father.fullName, childDict); - } - - if (!childDict.TryGetValue(name, out _fullName)) - { - string value = name; - var f = _father; - while (f != null) - { - value = f.name + value; - f = f.fahter; - } - _fullName = value; - childDict[name] = string.Intern(_fullName); - } - - return _fullName; - } - else - { - return _fullName; - } - } - } - - public Sample fahter - { - set - { - if (value != null) - { - bool needAdd = true; - var childList = value.childs; - for (int i = 0,imax = childList.Count;i> m_fullNamePool = new Dictionary>(); - public static ObjectPool samplePool = new ObjectPool(8192); - public static Sample Create() - { - Sample s = samplePool.GetObject(); - return s; - } - - public static Sample Create(long time, int memory, string name) - { - Sample s = samplePool.GetObject(); - - s.calls = 1; - s.currentTime = time; - s.currentLuaMemory = memory; - s.currentMonoMemory = (int)GC.GetTotalMemory(false); - s.frameCount = SampleData.frameCount; - s.fps = SampleData.fps; - s.pss = SampleData.pss; - s.power = SampleData.power; - s.costLuaGC = 0; - s.costMonoGC = 0; - s.name = name; - s.costTime = 0; - s._father = null; - s.childs.Clear(); - s.captureUrl = null; - s._fullName = null; - s.needShow = false; - - return s; - } - - public override void Restore() - { - lock (this) - { - for (int i = 0, imax = childs.Count; i < imax; i++) - { - childs[i].Restore(); - } - _fullName = null; - childs.Clear(); - samplePool.Store(this); - } - } - #endregion - - #region method - public void AddSample(Sample s) - { - calls += s.calls; - costLuaGC += Math.Max(s.costLuaGC, 0); - costMonoGC += Math.Max(s.costMonoGC, 0); - costTime += s.costTime; - for (int i = s.childs.Count - 1; i >= 0; i--) - { - var item = s.childs[i]; - item.fahter = this; - if (item.fahter != s) - { - s.childs.RemoveAt(i); - } - } - } - public static string Capture() - { - if (string.IsNullOrEmpty(capturePath)) capturePath = "capture" + DateTime.Now.Ticks.ToString(); - - Directory.CreateDirectory(capturePath); - - string result = capturePath + "/" + Time.frameCount.ToString() + ".png"; -#if UNITY_2017_1_OR_NEWER - ScreenCapture.CaptureScreenshot(result, 0); -#else - Application.CaptureScreenshot(result, 0); -#endif - return result; - } - - public Sample Clone() - { - Sample s = new Sample(); - - s.calls = calls; - s.frameCount = frameCount; - s.fps = fps; - s.pss = pss; - s.power = power; - s.costMonoGC = costMonoGC; - s.costLuaGC = costLuaGC; - s.name = name; - s.costTime = costTime; - - int childCount = childs.Count; - for (int i = 0; i < childCount; i++) - { - Sample child = childs[i].Clone(); - child.fahter = s; - } - - s.currentLuaMemory = currentLuaMemory; - s.currentMonoMemory = currentMonoMemory; - s.currentTime = currentTime; - s.captureUrl = captureUrl; - return s; - } - #endregion - - #region 序列化 - public static void SerializeList(List samples, string path) - { - FileStream fs = new FileStream(path, FileMode.CreateNew, FileAccess.Write); - BinaryWriter b = new BinaryWriter(fs); -#if UNITY_EDITOR - UnityEditor.EditorUtility.ClearProgressBar(); -#endif - b.Write(samples.Count); - for (int i = 0, imax = samples.Count; i < imax; i++) - { - Sample s = samples[i]; -#if UNITY_EDITOR - UnityEditor.EditorUtility.DisplayProgressBar("serialize profiler data", "serialize " + s.name, (float)i / (float)imax); -#endif - byte[] datas = s.Serialize(); - b.Write(datas.Length); - b.Write(datas); - } - b.Close(); -#if UNITY_EDITOR - UnityEditor.EditorUtility.ClearProgressBar(); -#endif - } - - public static List DeserializeList(string path) - { - FileStream ms = new FileStream(path, FileMode.Open, FileAccess.Read); - BinaryReader b = new BinaryReader(ms); - - int count = b.ReadInt32(); - List result = new List(count); - - for (int i = 0, imax = count; i < imax; i++) - { - int len = b.ReadInt32(); - Sample s = Deserialize(b.ReadBytes(len)); - result.Add(s); - } - b.Close(); - - return result; - } - - public byte[] Serialize() - { - byte[] result = null; - MemoryStream ms = new MemoryStream(); - BinaryWriter b = new BinaryWriter(ms); - - b.Write(calls); - b.Write(frameCount); - b.Write(fps); - b.Write(pss); - b.Write(power); - b.Write(costLuaGC); - b.Write(costMonoGC); - - byte[] datas = Encoding.UTF8.GetBytes(name); - b.Write(datas.Length); - b.Write(datas); - - b.Write(costTime); - - b.Write(childs.Count); - for (int i = 0, imax = childs.Count; i < imax; i++) - { - datas = childs[i].Serialize(); - b.Write(datas.Length); - b.Write(datas); - } - - if (string.IsNullOrEmpty(captureUrl) || !File.Exists(captureUrl)) - { - b.Write(false); - } - else - { - b.Write(true); - datas = Encoding.UTF8.GetBytes(captureUrl); - b.Write(datas.Length); - b.Write(datas); - - //写入图片数据 - datas = File.ReadAllBytes(captureUrl); - b.Write(datas.Length); - b.Write(datas); - } - b.Write(currentLuaMemory); - b.Write(currentMonoMemory); - - result = ms.ToArray(); - b.Close(); - - return result; - } - - public static Sample Deserialize(byte[] data) - { - MemoryStream ms = new MemoryStream(data); - BinaryReader b = new BinaryReader(ms); - - return Deserialize(b); - } - - public static Sample Deserialize(BinaryReader b) - { - Sample s = new Sample(); - s.calls = b.ReadInt32(); - s.frameCount = b.ReadInt32(); - s.fps = b.ReadSingle(); - s.pss = b.ReadUInt32(); - s.power = b.ReadSingle(); - s.costLuaGC = b.ReadInt32(); - s.costMonoGC = b.ReadInt32(); - - int len = b.ReadInt32(); - byte[] datas = b.ReadBytes(len); - s.name = Encoding.UTF8.GetString(datas); - s.costTime = b.ReadInt32(); - - int childCount = b.ReadInt32(); - for (int i = 0; i < childCount; i++) - { - len = b.ReadInt32(); - datas = b.ReadBytes(len); - Sample child = Deserialize(datas); - child.fahter = s; - } - - bool hasCapture = b.ReadBoolean(); - if (hasCapture) - { - len = b.ReadInt32(); - datas = b.ReadBytes(len); - s.captureUrl = Encoding.UTF8.GetString(datas); - - if (!File.Exists(s.captureUrl)) - { - string dir = Path.GetDirectoryName(s.captureUrl); - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } - - len = b.ReadInt32(); - datas = b.ReadBytes(len); - //写入图片数据 - File.WriteAllBytes(s.captureUrl, datas); - } - - } - s.currentLuaMemory = b.ReadInt32(); - s.currentMonoMemory = b.ReadInt32(); - - int lua_gc = 0; - int mono_gc = 0; - for (int i = 0, imax = s.childs.Count; i < imax; i++) - { - var item = s.childs[i]; - lua_gc += item.costLuaGC; - mono_gc += item.costMonoGC; - } - s.costLuaGC = Math.Max(lua_gc, s.costLuaGC); - s.costMonoGC = Math.Max(mono_gc, s.costMonoGC); - - b.Close(); - - return s; - - } - - public static void DeleteFiles(string str) - { - DirectoryInfo fatherFolder = new DirectoryInfo(str); - //删除当前文件夹内文件 - FileInfo[] files = fatherFolder.GetFiles(); - foreach (FileInfo file in files) - { - string fileName = file.Name; - try - { - File.Delete(file.FullName); - } - catch (Exception ex) - { - Debug.LogError(ex); - } - } - //递归删除子文件夹内文件 - foreach (DirectoryInfo childFolder in fatherFolder.GetDirectories()) - { - DeleteFiles(childFolder.FullName); - } - Directory.Delete(str, true); - } - #endregion - } - } #endif diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/AndroidHook/AndroidNativeHooker.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/AndroidHook/AndroidNativeHooker.cs index 630f7487..42a3e2af 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/AndroidHook/AndroidNativeHooker.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/AndroidHook/AndroidNativeHooker.cs @@ -28,7 +28,7 @@ public IntPtr GetProcAddress(string InPath, string InProcName) public IntPtr GetProcAddressByHandle(IntPtr InModule, string InProcName) { - return dlsym(RTLD_DEFAULT, InProcName); + return dlsym(InModule, InProcName); } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] @@ -52,17 +52,19 @@ public void HookLoadLibrary(Action callBack) _callBack = callBack; } } + + private static bool isLoadLuaSo = false; [MonoPInvokeCallbackAttribute(typeof(dlopenfun))] static IntPtr dlopen_replace(string libfile, int flag) { var ret = dlopenF(libfile, flag); - if (dlsym(RTLD_DEFAULT, "luaL_newstate") != IntPtr.Zero) + if (!isLoadLuaSo && dlsym(ret, "luaL_newstate") != IntPtr.Zero) { - _callBack?.Invoke(ret); + isLoadLuaSo = true; + UnityEngine.Debug.LogError("_callBack HookLoadLibrary"); + _callBack.Invoke(ret); } - hooker.Uninstall(); - return ret; } @@ -76,12 +78,13 @@ public unsafe class AndroidNativeHooker : INativeHooker { public Delegate GetProxyFun(Type t) { + UnityEngine.Debug.LogError($"_proxyFun:{(IntPtr)_proxyFun}"); if (_proxyFun == null) return null; - return Marshal.GetDelegateForFunctionPointer((IntPtr)(*_proxyFun), t); + return Marshal.GetDelegateForFunctionPointer((IntPtr)_proxyFun, t); } public bool isHooked { get; set; } - private void** _proxyFun = null; + private void* _proxyFun = null; private IntPtr _targetPtr = IntPtr.Zero; private IntPtr _replacementPtr = IntPtr.Zero; private IntPtr stub = IntPtr.Zero; @@ -105,7 +108,10 @@ public void Init(IntPtr targetPtr, IntPtr replacementPtr) public void Install() { - stub = shadowhook_hook_func_addr( _targetPtr, _replacementPtr, _proxyFun); + fixed (void** addr = &_proxyFun) + { + stub = shadowhook_hook_func_addr( _targetPtr, _replacementPtr, addr); + } } public void Uninstall() @@ -114,6 +120,7 @@ public void Uninstall() { shadowhook_unhook(stub); _proxyFun = null; + stub = IntPtr.Zero; } } } diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/WindowsHook/WindowsNativeHooker.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/WindowsHook/WindowsNativeHooker.cs index 5cf7616f..453c9289 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/WindowsHook/WindowsNativeHooker.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/Hook/WindowsHook/WindowsNativeHooker.cs @@ -52,8 +52,8 @@ public void HookLoadLibrary(Action callBack) if (GetProcAddressByHandle(ret, "luaL_newstate") != IntPtr.Zero) { callBack(ret); + hooker.Uninstall(); } - hooker.Uninstall(); return ret; }); hooker = new WindowsNativeHooker(); diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaDLL.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaDLL.cs index b95c362d..de3d3c94 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaDLL.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaDLL.cs @@ -315,6 +315,16 @@ public static void luaL_initlibs(IntPtr luaState) } } + public static unsafe IntPtr ConvertByteArrayToPtr(byte[] buff) + { + IntPtr intPtr; + fixed (byte* b = buff) + { + intPtr = (IntPtr)b; + } + return intPtr; + } + #region script const string env_script = @" local function getfunction(level) @@ -360,7 +370,7 @@ elseif not name then public static int luaL_loadbufferUnHook(IntPtr luaState, byte[] buff, IntPtr size, string name) { - IntPtr intPtr = NativeUtility.ConvertByteArrayToPtr(buff); + IntPtr intPtr = ConvertByteArrayToPtr(buff); int result; if (LUA_VERSION > 510) { @@ -448,44 +458,46 @@ public static void Uninstall() } private static bool isBinding = false; - public static void BindEasyHook() + public static void BindEasyHook(IntPtr module) { lock (m_Lock) { if (m_hooked) return; if(isBinding) return; isBinding = true; - string moduleName = CheckHasLuaDLL(); + if (module == IntPtr.Zero) + { + module = CheckHasLuaDLL(); + } + isBinding = false; - if (m_hooked) return; - if (string.IsNullOrEmpty(moduleName)) + if (module == IntPtr.Zero) { - HookLoadLibrary(); return; } - if (GetProcAddress(moduleName, "luaopen_jit") != IntPtr.Zero) + if (GetProcAddress(module, "luaopen_jit") != IntPtr.Zero) { IS_LUA_JIT = true; } - if (GetProcAddress(moduleName, "lua_rotate") != IntPtr.Zero) + if (GetProcAddress(module, "lua_rotate") != IntPtr.Zero) { LUA_VERSION = 530; // LUA_REGISTRYINDEX == LUAI_FIRSTPSEUDOIDX with LUAI_FIRSTPSEUDOIDX == (-LUAI_MAXSTACK - 1000) with LUAI_MAXSTACK == 15000 (for 32 bits build...) LuaIndexes.LUA_REGISTRYINDEX = -1001000; // starting with Lua 5.2, there is no longer a LUA_GLOBALSINDEX pseudo-index. Instead the global table is stored in the registry at LUA_RIDX_GLOBALS LuaIndexes.LUA_GLOBALSINDEX = 2; - IntPtr handle = GetProcAddress(moduleName, "lua_rotate"); + IntPtr handle = GetProcAddress(module, "lua_rotate"); lua_rotate = (lua_rotate_fun)Marshal.GetDelegateForFunctionPointer(handle, typeof(lua_rotate_fun)); } - else if (GetProcAddress(moduleName, "lua_open") != IntPtr.Zero) + else if (GetProcAddress(module, "lua_open") != IntPtr.Zero) { LUA_VERSION = 500; LuaIndexes.LUA_REGISTRYINDEX = -10000; LuaIndexes.LUA_GLOBALSINDEX = -10001; } - else if (GetProcAddress(moduleName, "lua_callk") != IntPtr.Zero) + else if (GetProcAddress(module, "lua_callk") != IntPtr.Zero) { LUA_VERSION = 520; // LUA_REGISTRYINDEX == LUAI_FIRSTPSEUDOIDX with LUAI_FIRSTPSEUDOIDX == (-LUAI_MAXSTACK - 1000) with LUAI_MAXSTACK == 15000 (for 32 bits build...) @@ -493,7 +505,7 @@ public static void BindEasyHook() // starting with Lua 5.2, there is no longer a LUA_GLOBALSINDEX pseudo-index. Instead the global table is stored in the registry at LUA_RIDX_GLOBALS LuaIndexes.LUA_GLOBALSINDEX = 2; } - else if (GetProcAddress(moduleName, "lua_gettop") != IntPtr.Zero) // should be ok for any version + else if (GetProcAddress(module, "lua_gettop") != IntPtr.Zero) // should be ok for any version { LUA_VERSION = 510; LuaIndexes.LUA_REGISTRYINDEX = -10000; @@ -509,7 +521,7 @@ public static void BindEasyHook() if (luaL_newstate_hook == null) { - IntPtr handle = GetProcAddress(moduleName, "luaL_newstate"); + IntPtr handle = GetProcAddress(module, "luaL_newstate"); luaL_newstate_fun luaFun = new luaL_newstate_fun(luaL_newstate_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -520,7 +532,7 @@ public static void BindEasyHook() if (lua_close_hook == null) { - IntPtr handle = GetProcAddress(moduleName, "lua_close"); + IntPtr handle = GetProcAddress(module, "lua_close"); lua_close_fun luaFun = new lua_close_fun(lua_close_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -531,7 +543,7 @@ public static void BindEasyHook() if (lua_gc_hook == null) { - IntPtr handle = GetProcAddress(moduleName, "lua_gc"); + IntPtr handle = GetProcAddress(module, "lua_gc"); lua_gc_fun luaFun = new lua_gc_fun(lua_gc_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -552,7 +564,7 @@ public static void BindEasyHook() if (luaL_ref_hook == null) { - IntPtr handle = GetProcAddress(moduleName, "luaL_ref"); + IntPtr handle = GetProcAddress(module, "luaL_ref"); luaL_ref_fun luaFun = new luaL_ref_fun(luaL_ref_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -563,7 +575,7 @@ public static void BindEasyHook() if (luaL_unref_hook == null) { - IntPtr handle = GetProcAddress(moduleName, "luaL_unref"); + IntPtr handle = GetProcAddress(module, "luaL_unref"); luaL_unref_fun luaFun = new luaL_unref_fun(luaL_unref_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -588,7 +600,7 @@ public static void BindEasyHook() { if (LUA_VERSION > 510) { - IntPtr handle = GetProcAddress(moduleName, "luaL_loadbufferx"); + IntPtr handle = GetProcAddress(module, "luaL_loadbufferx"); luaL_loadbufferx_fun luaFun = new luaL_loadbufferx_fun(luaL_loadbufferx_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -598,7 +610,7 @@ public static void BindEasyHook() } else { - IntPtr handle = GetProcAddress(moduleName, "luaL_loadbuffer"); + IntPtr handle = GetProcAddress(module, "luaL_loadbuffer"); luaL_loadbuffer_fun luaFun = new luaL_loadbuffer_fun(luaL_loadbuffer_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -610,7 +622,7 @@ public static void BindEasyHook() if (luaL_openlibs_hook == null) { - IntPtr handle = GetProcAddress(moduleName, "luaL_openlibs"); + IntPtr handle = GetProcAddress(module, "luaL_openlibs"); luaL_openlibs_fun luaFun = new luaL_openlibs_fun(luaL_openlibs_replace); INativeHooker hooker = nativeUtil.CreateHook(); hooker.Init(handle, Marshal.GetFunctionPointerForDelegate(luaFun)); @@ -624,7 +636,7 @@ public static void BindEasyHook() if (LUA_VERSION > 510) { { - IntPtr handle = GetProcAddress(moduleName, "lua_getglobal"); + IntPtr handle = GetProcAddress(module, "lua_getglobal"); if (handle != IntPtr.Zero) { lua_getglobal = @@ -633,7 +645,7 @@ public static void BindEasyHook() } } { - IntPtr handle = GetProcAddress(moduleName, "lua_setglobal"); + IntPtr handle = GetProcAddress(module, "lua_setglobal"); if (handle != IntPtr.Zero) { lua_setglobal = @@ -642,7 +654,7 @@ public static void BindEasyHook() } } { - IntPtr handle = GetProcAddress(moduleName, "lua_rawlen"); + IntPtr handle = GetProcAddress(module, "lua_rawlen"); if (handle != IntPtr.Zero) { lua_objlen = @@ -655,7 +667,7 @@ public static void BindEasyHook() lua_getglobal = new lua_getglobal_fun(lua_getglobal51); lua_setglobal = new lua_setglobal_fun(lua_setglobal51); { - IntPtr handle = GetProcAddress(moduleName, "lua_objlen"); + IntPtr handle = GetProcAddress(module, "lua_objlen"); if (handle != IntPtr.Zero) { lua_objlen = @@ -665,7 +677,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_gettop"); + IntPtr handle = GetProcAddress(module, "lua_gettop"); if (handle != IntPtr.Zero) { lua_gettop = @@ -674,7 +686,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_settop"); + IntPtr handle = GetProcAddress(module, "lua_settop"); if (handle != IntPtr.Zero) { lua_settop = @@ -683,7 +695,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_pushvalue"); + IntPtr handle = GetProcAddress(module, "lua_pushvalue"); if (handle != IntPtr.Zero) { lua_pushvalue = @@ -692,7 +704,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_remove"); + IntPtr handle = GetProcAddress(module, "lua_remove"); if (handle != IntPtr.Zero) { lua_remove = @@ -705,7 +717,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_insert"); + IntPtr handle = GetProcAddress(module, "lua_insert"); if (handle != IntPtr.Zero) { lua_insert = @@ -718,7 +730,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_type"); + IntPtr handle = GetProcAddress(module, "lua_type"); if (handle != IntPtr.Zero) { lua_type = (lua_type_fun)Marshal.GetDelegateForFunctionPointer(handle, typeof(lua_type_fun)); @@ -728,7 +740,7 @@ public static void BindEasyHook() { if (LUA_VERSION >= 520) { - IntPtr handle = GetProcAddress(moduleName, "lua_tonumberx"); + IntPtr handle = GetProcAddress(module, "lua_tonumberx"); if (handle != IntPtr.Zero) { var tonumx = @@ -739,7 +751,7 @@ public static void BindEasyHook() } else { - IntPtr handle = GetProcAddress(moduleName, "lua_tonumber"); + IntPtr handle = GetProcAddress(module, "lua_tonumber"); if (handle != IntPtr.Zero) { lua_tonumber = @@ -750,7 +762,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_pushnil"); + IntPtr handle = GetProcAddress(module, "lua_pushnil"); if (handle != IntPtr.Zero) { lua_pushnil = @@ -759,7 +771,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_pushnumber"); + IntPtr handle = GetProcAddress(module, "lua_pushnumber"); if (handle != IntPtr.Zero) { lua_pushnumber = @@ -769,7 +781,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_pushstring"); + IntPtr handle = GetProcAddress(module, "lua_pushstring"); if (handle != IntPtr.Zero) { lua_pushstring = @@ -779,7 +791,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_pushboolean"); + IntPtr handle = GetProcAddress(module, "lua_pushboolean"); if (handle != IntPtr.Zero) { lua_pushboolean = @@ -789,7 +801,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_getfield"); + IntPtr handle = GetProcAddress(module, "lua_getfield"); if (handle != IntPtr.Zero) { lua_getfield = @@ -798,7 +810,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_rawget"); + IntPtr handle = GetProcAddress(module, "lua_rawget"); if (handle != IntPtr.Zero) { lua_rawget = @@ -807,7 +819,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_rawgeti"); + IntPtr handle = GetProcAddress(module, "lua_rawgeti"); if (handle != IntPtr.Zero) { lua_rawgeti = @@ -816,7 +828,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_createtable"); + IntPtr handle = GetProcAddress(module, "lua_createtable"); if (handle != IntPtr.Zero) { lua_createtable = @@ -826,7 +838,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_setfield"); + IntPtr handle = GetProcAddress(module, "lua_setfield"); if (handle != IntPtr.Zero) { lua_setfield = @@ -835,7 +847,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_rawset"); + IntPtr handle = GetProcAddress(module, "lua_rawset"); if (handle != IntPtr.Zero) { lua_rawset = @@ -846,7 +858,7 @@ public static void BindEasyHook() { if (LUA_VERSION >= 520) { - IntPtr handle = GetProcAddress(moduleName, "lua_pcallk"); + IntPtr handle = GetProcAddress(module, "lua_pcallk"); if (handle != IntPtr.Zero) { lua_pcallk = @@ -859,7 +871,7 @@ public static void BindEasyHook() } else { - IntPtr handle = GetProcAddress(moduleName, "lua_pcall"); + IntPtr handle = GetProcAddress(module, "lua_pcall"); if (handle != IntPtr.Zero) { lua_pcall = (lua_pcall_fun)Marshal.GetDelegateForFunctionPointer(handle, @@ -871,7 +883,7 @@ public static void BindEasyHook() { if (LUA_VERSION >= 520) { - IntPtr handle = GetProcAddress(moduleName, "lua_callk"); + IntPtr handle = GetProcAddress(module, "lua_callk"); if (handle != IntPtr.Zero) { lua_callk = @@ -884,7 +896,7 @@ public static void BindEasyHook() } else { - IntPtr handle = GetProcAddress(moduleName, "lua_call"); + IntPtr handle = GetProcAddress(module, "lua_call"); if (handle != IntPtr.Zero) { lua_call = @@ -894,7 +906,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_next"); + IntPtr handle = GetProcAddress(module, "lua_next"); if (handle != IntPtr.Zero) { lua_next = (lua_next_fun)Marshal.GetDelegateForFunctionPointer(handle, typeof(lua_next_fun)); @@ -902,7 +914,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_tolstring"); + IntPtr handle = GetProcAddress(module, "lua_tolstring"); if (handle != IntPtr.Zero) { lua_tolstring = @@ -911,7 +923,7 @@ public static void BindEasyHook() } { - IntPtr handle = GetProcAddress(moduleName, "lua_pushcclosure"); + IntPtr handle = GetProcAddress(module, "lua_pushcclosure"); if (handle != IntPtr.Zero) { lua_pushcclosure = @@ -927,43 +939,50 @@ public static void BindEasyHook() public static void HookLoadLibrary() { + IntPtr module = CheckHasLuaDLL(); + if (module != IntPtr.Zero) + { + return; + } + nativeUtil.HookLoadLibrary((ret) => { if (!m_hooked) { - if (nativeUtil.GetProcAddressByHandle(ret, "luaL_newstate") != IntPtr.Zero) - { - BindEasyHook(); - } + UnityEngine.Debug.LogError("HookLoadLibrary"); + BindEasyHook(ret); } }); } - private static IntPtr GetProcAddress(string moduleName, string funName) + private static IntPtr GetProcAddress(IntPtr module, string funName) { IntPtr result = IntPtr.Zero; try { - result = nativeUtil.GetProcAddress(moduleName, funName); + result = nativeUtil.GetProcAddressByHandle(module, funName); } catch{} return result; } - private static string CheckHasLuaDLL() + private static IntPtr CheckHasLuaDLL() { - string result = null; + IntPtr result = IntPtr.Zero; +#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN var process = Process.GetCurrentProcess(); var modules = process.Modules; foreach (ProcessModule item in modules) { - string moduleName = item.ModuleName; - if (GetProcAddress(moduleName, "luaL_newstate") != IntPtr.Zero) + result = GetProcAddress(item.BaseAddress, "luaL_newstate"); + if (result != IntPtr.Zero) { - result = moduleName; - break; + return item.BaseAddress; } } +#else + result = GetProcAddress(IntPtr.Zero, "luaL_newstate"); +#endif return result; } @@ -1086,7 +1105,7 @@ public static int luaL_loadbufferx_replace(IntPtr luaState, IntPtr buff, IntPtr name = "chunk"; } buffer = LuaHook.Hookloadbuffer(luaState, buffer, name); - buff = NativeUtility.ConvertByteArrayToPtr(buffer); + buff = ConvertByteArrayToPtr(buffer); size = (IntPtr)buffer.Length; } return luaL_loadbufferx(luaState, buff, size, name, mode); @@ -1153,7 +1172,7 @@ public static int luaL_loadbuffer_replace(IntPtr luaState, IntPtr buff, IntPtr s name = "chunk"; } buffer = LuaHook.Hookloadbuffer(luaState, buffer, name); - buff = NativeUtility.ConvertByteArrayToPtr(buffer); + buff = ConvertByteArrayToPtr(buffer); size = (IntPtr)buffer.Length; } return luaL_loadbuffer(luaState, buff, size, name); diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaProfiler.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaProfiler.cs index dc5d4257..375a5aff 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaProfiler.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/Driver/LuaProfiler.cs @@ -168,8 +168,7 @@ public static void BeginSample(IntPtr luaState, string name, bool needShow = fal m_currentFrame = frameCount; PopAllSampleWhenLateUpdate(luaState); } - Sample sample = Sample.Create(getcurrentTime, (int)memoryCount, name); - sample.needShow = needShow; + Sample sample = Sample.Create(getcurrentTime, (int)memoryCount, name); beginSampleMemoryStack.Push(sample); } catch(Exception e) @@ -227,7 +226,7 @@ public static void EndSample(IntPtr luaState) if (setting == null) return; if (!setting.isLocal) { - NetWorkClient.SendMessage(sample); + NetWorkMgr.SendCmd(sample); } else if(m_onReceiveSample != null) { @@ -248,7 +247,7 @@ public static void SendFrameSample() Sample sample = Sample.Create(getcurrentTime, (int)memoryCount, ""); if (!setting.isLocal) { - NetWorkClient.SendMessage(sample); + NetWorkMgr.SendCmd(sample); } else if (m_onReceiveSample != null) { @@ -288,7 +287,7 @@ public static void SendAddRef(string funName, string funAddr, byte type) var setting = LuaDeepProfilerSetting.Instance; if (!setting.isLocal) { - NetWorkClient.SendMessage(refInfo); + NetWorkMgr.SendCmd(refInfo); } else if (m_onReceiveRef != null) { @@ -327,7 +326,7 @@ public static void SendRemoveRef(string funName, string funAddr, byte type) var setting = LuaDeepProfilerSetting.Instance; if (!setting.isLocal) { - NetWorkClient.SendMessage(refInfo); + NetWorkMgr.SendCmd(refInfo); } else if (m_onReceiveRef != null) { diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/LuaHookSetup.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/LuaHookSetup.cs index 2a86d7ac..715aa63f 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/LuaHookSetup.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/LuaHookSetup.cs @@ -79,23 +79,16 @@ public static void OnStartGame() isInite = true; setting = LuaDeepProfilerSetting.Instance; LuaProfiler.mainThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId; - -#if UNITY_EDITOR - if (setting.isDeepLuaProfiler) + + if (setting.isDeepLuaProfiler || !setting.isLocal) { LuaDLL.Uninstall(); LuaDLL.HookLoadLibrary(); - LuaDLL.BindEasyHook(); + LuaDLL.BindEasyHook(IntPtr.Zero); //LuaDLL.Install(); - - if (setting.isCleanMode) - { - LuaProfilerPrecompileSetting.CompileLuaScript(false); - } } -#endif - if (setting.isDeepLuaProfiler || setting.isCleanMode) + if (setting.isDeepLuaProfiler || setting.isCleanMode || !setting.isLocal) { GameObject go = new GameObject(); go.name = "MikuLuaProfiler"; @@ -104,7 +97,7 @@ public static void OnStartGame() go.AddComponent(); if (!setting.isLocal) { - NetWorkClient.ConnectServer(setting.ip, setting.port); + NetWorkMgr.BeginListen("0.0.0.0", setting.port); } } } @@ -156,9 +149,8 @@ private void OnApplicationQuit() desotryCount = 0; Destroy(gameObject); UnityEditor.EditorApplication.update += WaitDestory; -#else - NetWorkClient.Close(); #endif + NetWorkMgr.Close(); } #if UNITY_EDITOR @@ -175,7 +167,7 @@ private void WaitDestory() } LuaDLL.Uninstall(); LuaProfiler.mainL = IntPtr.Zero; - NetWorkClient.Close(); + NetWorkMgr.Close(); desotryCount = 0; } } @@ -207,17 +199,6 @@ private void OnGUI() { var setting = HookLuaSetup.setting; - if (GUI.Button(new Rect(0, 0, 200, 100), "Connect")) - { - NetWorkClient.ConnectServer(setting.ip, setting.port); - } - - setting.ip = GUI.TextField(new Rect(210, 20, 200, 60), setting.ip); - - if (GUI.Button(new Rect(0, 110, 200, 100), "Disconnect")) - { - NetWorkClient.Close(); - } if (setting.discardInvalid) { if (GUI.Button(new Rect(0, 220, 200, 100), "ShowAll")) @@ -557,20 +538,20 @@ private static void SetTable(int refIndex, Dictionary> LuaDLL.lua_settop(L, oldTop); } - public static void DiffServer() - { - NetWorkClient.SendMessage(Diff()); - } - - public static void MarkRecordServer() - { - NetWorkClient.SendMessage(Record()); - } - - public static void MarkStaticServer() - { - NetWorkClient.SendMessage(Record()); - } + // public static void DiffServer() + // { + // NetWorkClient.SendMessage(Diff()); + // } + // + // public static void MarkRecordServer() + // { + // NetWorkClient.SendMessage(Record()); + // } + // + // public static void MarkStaticServer() + // { + // NetWorkClient.SendMessage(Record()); + // } public static LuaDiffInfo Diff() { diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs new file mode 100644 index 00000000..6fb4b111 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace MikuLuaProfiler +{ + public class MBinaryReader : BinaryReader + { + public MBinaryReader(Stream input) : base(input) + { + } + + public MBinaryReader(Stream input, Encoding encoding) : base(input, encoding) + { + } + + public MBinaryReader(Stream input, Encoding encoding, bool leaveOpen) : base(input, encoding, leaveOpen) + { + } + + private Dictionary m_strCacheDict = new Dictionary(4096); + public override string ReadString() + { + string result = null; + + bool isRef = ReadBoolean(); + int index = ReadInt32(); + if (!isRef) + { + int len = ReadInt32(); + byte[] datas = ReadBytes(len); + result = string.Intern(Encoding.UTF8.GetString(datas)); + m_strCacheDict[index] = result; + } + else + { + result = m_strCacheDict[index]; + } + return result; + } + } +} \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs.meta new file mode 100644 index 00000000..3912b7c6 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryReader.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 16db94328e2c472d8215f80ad7c9ef0c +timeCreated: 1669952711 \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs new file mode 100644 index 00000000..ba998719 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs @@ -0,0 +1,114 @@ +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace MikuLuaProfiler +{ + // Token: 0x02000002 RID: 2 + public sealed class MBinaryWriter : BinaryWriter + { + // Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250 + public MBinaryWriter(Stream output) : base(output) + { + this._buffer = new byte[8]; + } + + // Token: 0x06000002 RID: 2 RVA: 0x00002068 File Offset: 0x00000268 + public unsafe override void Write(float value) + { + fixed (byte* ptr = _buffer) + { + *(float*)ptr = value; + } + this.OutStream.Write(this._buffer, 0, 4); + } + + // Token: 0x06000003 RID: 3 RVA: 0x000020AC File Offset: 0x000002AC + public unsafe override void Write(short value) + { + fixed (byte* ptr = _buffer) + { + *(short*)ptr = value; + } + this.OutStream.Write(this._buffer, 0, 2); + } + + // Token: 0x06000004 RID: 4 RVA: 0x000020F0 File Offset: 0x000002F0 + public unsafe override void Write(ushort value) + { + fixed (byte* ptr = _buffer) + { + *(ushort*)ptr = value; + } + this.OutStream.Write(this._buffer, 0, 2); + } + + // Token: 0x06000005 RID: 5 RVA: 0x00002134 File Offset: 0x00000334 + public unsafe override void Write(int value) + { + fixed (byte* ptr = _buffer) + { + *(int*)ptr = value; + } + this.OutStream.Write(this._buffer, 0, 4); + } + + // Token: 0x06000006 RID: 6 RVA: 0x00002178 File Offset: 0x00000378 + public unsafe override void Write(uint value) + { + fixed (byte* ptr = _buffer) + { + *(uint*)ptr = value; + } + this.OutStream.Write(this._buffer, 0, 4); + } + + // Token: 0x04000001 RID: 1 + private byte[] _buffer; + + #region string + private int m_key = 0; + private int GetUniqueKey() + { + return m_key++; + } + private Dictionary> m_strDict = new Dictionary>(8192); + private bool GetBytes(string s, out byte[] result, out int index) + { + bool ret = false; + KeyValuePair keyValuePair; + if (!m_strDict.TryGetValue(s, out keyValuePair)) + { + result = Encoding.UTF8.GetBytes(s); + index = GetUniqueKey(); + keyValuePair = new KeyValuePair(index, result); + m_strDict.Add(s, keyValuePair); + ret = false; + } + else + { + ret = true; + index = keyValuePair.Key; + result = keyValuePair.Value; + } + + return ret; + } + + public override void Write(string v) + { + byte[] datas; + int index = 0; + bool isRef = GetBytes(v, out datas, out index); + Write(isRef); + Write(index); + if (!isRef) + { + Write(datas.Length); + Write(datas); + } + } + + #endregion + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkClient.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs.meta similarity index 83% rename from LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkClient.cs.meta rename to LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs.meta index e0618535..9a944fcc 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkClient.cs.meta +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/MBinaryWriter.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 317e8d7f7830bf841b45bdf4d57f90b3 +guid: 6ac1bcbe8e1dcbe46bcf0a98a45e7bcb MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs new file mode 100644 index 00000000..aa587173 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs @@ -0,0 +1,113 @@ +#if !CSHARP_7_3_OR_NEWER +#define NET35 +#endif + +using System; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using Debug = UnityEngine.Debug; + +namespace MikuLuaProfiler +{ + public static partial class NetWorkMgr + { + private static TcpListener tcpLister; + private static TcpClient tcpClient = null; + private static Thread acceptThread; + + public static event Action OnConnected; + public static event Action OnDisconnect; + + #region public + public static void BeginListen(string ip, int port) + { + if (tcpLister != null) return; + + AddListener(OnRecvDisconnect); + + IPAddress myIP = IPAddress.Parse(ip); + tcpLister = new TcpListener(myIP, port); + tcpLister.Start(); + acceptThread = new Thread(AcceptThread); + acceptThread.Name = "ProfilerAcceptThread"; + acceptThread.Start(); + } + + public static void Close() + { + RemoveAllListeners(); + isClose = true; + if (tcpLister != null) + { + tcpLister.Stop(); + tcpLister = null; + } + + if (acceptThread != null) + { + acceptThread.Abort(); + acceptThread = null; + } + } + + #endregion + + #region private + private static void AcceptThread() + { + Debug.Log("begin listerner"); + tcpClient = null; + + while (true) + { + try + { + if (tcpLister == null) break; + AcceptAClient(); + Thread.Sleep(100); + } + catch + { + break; + } + } + } + + private static void AcceptAClient() + { + var newTcpClient = tcpLister.AcceptTcpClient(); + Debug.Log("link start"); + + // 有新的连接,强制踢掉旧连接(不然偶尔会出现莫名挂掉无法连接) TODO: 支持多客户端并发连接 + _Close(); + tcpClient?.Close(); + receiveThread?.Join(); + sendThread?.Join(); + + tcpClient = newTcpClient; + lastBeatTime = curTime; + isClose = false; + + NetworkStream ns = tcpClient.GetStream(); + // 启动一个线程来接受请求 + receiveThread = new Thread(()=>DoReceiveMessage(ns)); + receiveThread.Name = "ProfilerReceiveMessage"; + receiveThread.Start(); + + // 启动一个线程来发送请求 + sendThread = new Thread(()=>DoSendMessage(ns)); + sendThread.Name = "ProfilerSendMessage"; + sendThread.Start(); + + if (OnConnected != null) + { + var clientCtx = tcpClient; + Action actionOnConnected = ()=> OnConnected(clientCtx); + lock(m_eventQueue) + m_eventQueue.Enqueue(actionOnConnected); + } + } + #endregion + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs.meta similarity index 83% rename from LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs.meta rename to LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs.meta index e8abbb43..fef186e4 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs.meta +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.Server.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 759d5f5c3ac2df342b07c1f445a1c71a +guid: d788f1be9de5f904aa266535f55a3448 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs new file mode 100644 index 00000000..76148ab8 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs @@ -0,0 +1,302 @@ +#if !CSHARP_7_3_OR_NEWER +#define NET35 +#endif + +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using Debug = UnityEngine.Debug; + +namespace MikuLuaProfiler +{ + public static partial class NetWorkMgr + { + private static Thread receiveThread; + private static Thread sendThread; + private const int PACK_HEAD = 0x114514; + private const float HEART_BEAT_DELTA = float.MaxValue; // 永不超时 (原来是10分钟) + public static float lastBeatTime = 0; + public static float curTime = 0; + public static bool isClose = false; + private static Queue m_cmdQueue = new Queue(32); + private static Queue m_msgQueue = new Queue(32); + private static Queue m_eventQueue = new Queue(); + private static object m_CloseLock = 1; + + private static Dictionary receiveMsgDict = new Dictionary(); + + static NetWorkMgr() + { + var types = typeof(NetWorkMgr).Assembly.GetTypes(); + foreach (var t in types) + { + if (t.IsSubclassOf(typeof(PacketBase)) && !t.IsAbstract) + { + var attr = (PacketMsgAttribute)Attribute.GetCustomAttribute(t, typeof(PacketMsgAttribute)); + if (attr != null) + { + receiveMsgDict[(int)attr.msgHead] = t; + // PaperU3dProfiler.Log(t + "=" + attr.msgHead); + } + } + } + } + + public static void Update() + { + if (m_eventQueue.Count > 0) + { + lock (m_eventQueue) + { + while (m_eventQueue.Count > 0) + { + var msg = m_eventQueue.Dequeue(); + msg(); + } + } + } + + if (m_msgQueue.Count > 0) + { + lock (m_msgQueue) + { + while (m_msgQueue.Count > 0) + { + var msg = m_msgQueue.Dequeue(); + msg.OnRun(); + } + } + } + } + + #region public + + static void OnRecvDisconnect(PKGDisconnect pkg) + { + NetWorkMgr.Disconnect(); + } + + private static void _Close() + { + isClose = true; + if (tcpClient != null) + { + if (OnDisconnect != null) + { + var clientCtx = tcpClient; + tcpClient = null; + Action actionDisconnect = () => OnDisconnect(clientCtx); + lock(m_eventQueue) + m_eventQueue.Enqueue(actionDisconnect); + } + } + } + + public static void Disconnect() + { + isClose = true; + } + + public static void SendCmd(PacketBase cmd) + { + lock (m_cmdQueue) + { + m_cmdQueue.Enqueue(cmd); + } + } + #endregion + + #region private + + // 接受请求 + private static void DoReceiveMessage(NetworkStream ns) + { + UnityEngine.Debug.Log("begin to receive"); + + BinaryReader br = new BinaryReader(ns); + ; + //sign为true 循环接受数据 + while (true) + { + try + { + if (isClose || tcpClient == null) + { + _Close(); + break; + } + + while (ns.CanRead && ns.DataAvailable) + { + int head = br.ReadInt32(); + //处理粘包 + if (head == PACK_HEAD) + { + int messageId = br.ReadInt32(); + + Type t; + if (receiveMsgDict.TryGetValue(messageId, out t)) + { + var msg = (PacketBase) Activator.CreateInstance(t); + msg.Context = tcpClient; + msg.Read(br); + + if (messageId != (int) MsgHead.HeartBeat) + { + lock (m_msgQueue) + { + m_msgQueue.Enqueue(msg); + } + } + } + } + lastBeatTime = curTime; + } + + // 处理超时的时候 要断开链接 + if (curTime - lastBeatTime > HEART_BEAT_DELTA) + { + _Close(); + break; + } + } + catch (Exception e) + { + UnityEngine.Debug.Log(e); + _Close(); + break; + } + Thread.Sleep(10); + } + } + private static void DoSendMessage(NetworkStream ns) + { + MBinaryWriter bw = new MBinaryWriter(ns); + + while (true) + { + try + { + if (isClose) + { + break; + } + + if (ns.CanWrite) + { + lock (m_cmdQueue) + { + while (m_cmdQueue.Count > 0) + { + var msg = m_cmdQueue.Dequeue(); + bw.Write(PACK_HEAD); + bw.Write((int)msg.MsgHead); + msg.Write(bw); + msg.WriteOver(); + } + } + } + } + catch (Exception e) + { + if (tcpClient.Connected) + { + UnityEngine.Debug.Log(e); + } + _Close(); + break; + } + Thread.Sleep(10); + } + } + #endregion + + #region dispatch + + private static Dictionary _msgHandlers = new Dictionary(); + + public delegate void MsgHandlerDelegate(TPacket pkg) where TPacket : PacketBase; + + public static void AddListener(MsgHandlerDelegate handler) + where TPacket : PacketBase + { + // Debug.Log("AddListener: " + typeof(TPacket)); + Delegate oldHandler; + var msgType = typeof(TPacket); + if (_msgHandlers.TryGetValue(msgType, out oldHandler)) + { + _msgHandlers[msgType] = Delegate.Combine(oldHandler, handler); + } + else + { + _msgHandlers[msgType] = handler; + } + } + + public static void RemoveListener(MsgHandlerDelegate handler) + where TPacket : PacketBase + { + // Debug.Log("RemoveListener: " + typeof(TPacket)); + Delegate @delegate; + var msgType = typeof(TPacket); + if (_msgHandlers.TryGetValue(msgType, out @delegate)) + { + Delegate currentDel = Delegate.Remove(@delegate, handler); + + if (currentDel == null) + { + _msgHandlers.Remove(msgType); + } + else + { + _msgHandlers[msgType] = currentDel; + } + } + } + + public static void Dispatch(PacketBase pkg) + { + if (pkg == null) throw new ArgumentNullException("pkg"); + if (_msgHandlers == null) throw new ObjectDisposedException("Cannot dispatch and event when disposed! "); + + Delegate handler; + var msgType = pkg.GetType(); + if (_msgHandlers.TryGetValue(msgType, out handler)) + { + handler.DynamicInvoke(pkg); + } + else + { + Debug.LogError("Invalid handler for msg: " + pkg.ToString()); + } + } + + internal static void RemoveAllListeners() + { + // Debug.Log("RemoveAllListeners: "); + var handlerTypes = new Type[_msgHandlers.Keys.Count]; + _msgHandlers.Keys.CopyTo(handlerTypes, 0); + + foreach (var handlerType in handlerTypes) + { + Delegate[] delegates = _msgHandlers[handlerType].GetInvocationList(); + foreach (Delegate @delegate1 in delegates) + { + var handlerToRemove = Delegate.Remove(_msgHandlers[handlerType], @delegate1); + if (handlerToRemove == null) + { + _msgHandlers.Remove(handlerType); + } + else + { + _msgHandlers[handlerType] = handlerToRemove; + } + } + } + } + #endregion + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs.meta new file mode 100644 index 00000000..909816dd --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkMgr.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ee9aca590e2330949924f38dc1ee8e29 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet.meta new file mode 100644 index 00000000..ca49b037 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06840242a762d6746b3b29a646908f02 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs new file mode 100644 index 00000000..d50dd2bd --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs @@ -0,0 +1,94 @@ +using System; +using System.IO; + +namespace MikuLuaProfiler +{ + [PacketMsg(MsgHead.LuaRefInfo)] + public class LuaRefInfo: PacketBase + { + public override MsgHead MsgHead => MsgHead.LuaRefInfo; + + #region field + public byte cmd; //1添加、0移除 + public int frameCount; + public string name; + public string addr; + public byte type; //1 function 2 table + #endregion + + #region pool + public static LuaRefInfo Create() + { + LuaRefInfo r = PacketFactory.GetPacket(); + return r; + } + + public static LuaRefInfo Create(byte cmd, string name, string addr, byte type) + { + LuaRefInfo r = PacketFactory.GetPacket(); + r.cmd = cmd; + r.name = name; + r.addr = addr; + r.type = type; + return r; + } + + public void Restore() + { + PacketFactory.Release(this); + } + + public LuaRefInfo Clone() + { + LuaRefInfo result = new LuaRefInfo(); + + result.cmd = this.cmd; + result.frameCount = this.frameCount; + result.name = this.name; + result.addr = this.addr; + result.type = this.type; + + return result; + } + #endregion + + #region static + + private static Action OnReciveSample; + + public static void RegAction(Action action) + { + OnReciveSample = action; + } + + public static void UnRegAction() + { + OnReciveSample = null; + } + #endregion + + public override void Read(BinaryReader br) + { + cmd = br.ReadByte(); + frameCount = br.ReadInt32(); + name = br.ReadString(); + addr = br.ReadString(); + type = br.ReadByte(); + } + + public override void Write(BinaryWriter bw) + { + bw.Write(cmd); + bw.Write(SampleData.frameCount); + bw.Write(name); + bw.Write(addr); + bw.Write(type); + } + + public override void OnRun() + { + OnReciveSample?.Invoke(this); + } + + } +} \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs.meta new file mode 100644 index 00000000..15682e5e --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/LuaRefInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8bfc363caf6e4299b600f93b13db543c +timeCreated: 1669951305 \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs new file mode 100644 index 00000000..fc37ec7a --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs @@ -0,0 +1,9 @@ + +namespace MikuLuaProfiler +{ + [PacketMsg(MsgHead.DisConnect)] + public class PKGDisconnect : PacketBase + { + public override MsgHead MsgHead => MsgHead.DisConnect; + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs.meta new file mode 100644 index 00000000..55853799 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGDisconnect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e6b3e30ba0f360479bc2ea08d15702b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs new file mode 100644 index 00000000..0363a2d5 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs @@ -0,0 +1,9 @@ + +namespace MikuLuaProfiler +{ + [PacketMsg(MsgHead.HeartBeat)] + public class HeartBeatMsg : PacketBase + { + public override MsgHead MsgHead => MsgHead.HeartBeat; + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs.meta new file mode 100644 index 00000000..a3b730f0 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PKGHeartBeat.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 801071247d6b58b4f9aae592a2007e8e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs new file mode 100644 index 00000000..b5dd9eaa --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.IO; + +namespace MikuLuaProfiler +{ + + public enum MsgHead + { + HeartBeat = 0, + DisConnect, + ProfileSampleData, + LuaRefInfo, + } + + public class PacketMsgAttribute : Attribute + { + public MsgHead msgHead; + + public PacketMsgAttribute(MsgHead msgHead) + { + this.msgHead = msgHead; + } + } + + public static class PacketFactory where T: new() + { + private static Stack pool = new Stack(1024); + public static T GetPacket() + { + if (pool.Count > 0) + { + lock (pool) + { + return pool.Pop(); + } + } + return new T(); + } + + public static void Release(T p) + { + lock (pool) + { + pool.Push(p); + } + } + } + + public abstract class PacketBase + { + public abstract MsgHead MsgHead { get; } + public object Context { get; set; } + + public PacketBase() + { + } + + public virtual void Read(BinaryReader br) + { + } + + public virtual void Write(BinaryWriter bw) + { + } + + public virtual void OnRun() + { + } + + public virtual void OnRelease() + { + } + + public abstract void WriteOver(); + } + + public abstract class PacketBase : PacketBase where T : PacketBase, new() + { + public override void WriteOver() + { + T obj = (T)this; + obj.OnRelease(); + PacketFactory.Release(obj); + } + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs.meta new file mode 100644 index 00000000..281022e4 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/PacketBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8288505d7e8e6d14089f6a22ad8503f4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkClient.cs b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs similarity index 77% rename from LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkClient.cs rename to LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs index 21984fdf..186b49d5 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/NetWorkClient.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs @@ -1,295 +1,333 @@ -/* - ######### - ############ - ############# - ## ########### - ### ###### ##### - ### ####### #### - ### ########## #### - #### ########### #### - #### ########### ##### - ##### ### ######## ##### - ##### ### ######## ###### - ###### ### ########### ###### - ###### #### ############## ###### - ####### ##################### ###### - ####### ###################### ###### - ####### ###### ################# ###### - ####### ###### ###### ######### ###### - ####### ## ###### ###### ###### - ####### ###### ##### ##### - ###### ##### ##### #### - ##### #### ##### ### - ##### ### ### # - ### ### ### - ## ### ### -__________#_______####_______####______________ - 我们的未来没有BUG -* ============================================================================== -* Filename: NetWorkClient -* Created: 2018/7/13 14:29:22 -* Author: エル・プサイ・コングリィ -* Purpose: -* ============================================================================== -*/ -#if UNITY_EDITOR_WIN || USE_LUA_PROFILER +using System; +using System.Collections.Generic; +using System.IO; namespace MikuLuaProfiler { - using System; - using System.Collections.Generic; - using System.IO; - using System.Net.Sockets; - using System.Text; - using System.Threading; - - public static class NetWorkClient + [PacketMsg(MsgHead.ProfileSampleData)] + public class Sample: PacketBase { - private static TcpClient m_client = null; - private static Thread m_sendThread; - private static Thread m_receiveThread; - private static Queue m_sampleQueue = new Queue(256); - private const int PACK_HEAD = 0x23333333; - private static NetworkStream ns; - public static MBinaryWriter bw; - private static BinaryReader br; - private static int m_frameCount = 0; - - #region public - public static void ConnectServer(string host, int port) + #region head + public override MsgHead MsgHead => MsgHead.ProfileSampleData; + + public int currentLuaMemory; + public int currentMonoMemory; + public long currentTime; + + public int calls; + public int frameCount; + public float fps; + public uint pss; + public float power; + + public int costLuaGC; + public int costMonoGC; + public string name; + public int costTime; + public MList childs = new MList(16); + + #region property + public Sample _father; + private string _fullName; + public bool needShow = false; + + public bool isCopy = false; + public long copySelfLuaGC = -1; + public long selfLuaGC { - if (m_client != null) return; - m_client = new TcpClient(); - - m_client.NoDelay = true; - try - { - m_client.Connect(host, port); - - UnityEngine.Debug.Log("connect success"); - m_client.Client.SendTimeout = 30000; - //m_sampleDict.Clear(); - m_strDict.Clear(); - m_key = 0; - ns = m_client.GetStream(); - bw = new MBinaryWriter(ns); - br = new BinaryReader(ns); - - m_sendThread = new Thread(new ThreadStart(DoSendMessage)); - m_sendThread.Start(); - m_receiveThread = new Thread(new ThreadStart(DoRecieveMessage)); - m_receiveThread.Priority = ThreadPriority.Lowest; - m_receiveThread.Start(); - } - catch (Exception e) + get { - UnityEngine.Debug.Log(e); - Close(); + if (isCopy) return copySelfLuaGC; + long result = costLuaGC; + for (int i = 0, imax = childs.Count; i < imax; i++) + { + var item = childs[i]; + result -= item.costLuaGC; + } + return Math.Max(result, 0); } } - public static void Close() + public long copySelfMonoGC = -1; + + public long selfMonoGC { - try + get { - if (m_client != null) + if (isCopy) return copySelfMonoGC; + long result = costMonoGC; + for (int i = 0, imax = childs.Count; i < imax; i++) { - if (m_client.Connected) - { - m_client.Close(); - } - m_client = null; + var item = childs[i]; + result -= item.costMonoGC; } - m_sampleQueue.Clear(); - } - catch (Exception e) - { - UnityEngine.Debug.Log(e); - } - finally - { - m_strDict.Clear(); - } - if (m_receiveThread != null) - { - var tmp = m_receiveThread; - m_receiveThread = null; - tmp.Abort(); + return Math.Max(result, 0); } + } - if (m_sendThread != null) + public int copySelfCostTime = -1; + public int selfCostTime + { + get { - var tmp = m_sendThread; - m_sendThread = null; - tmp.Abort(); + if (isCopy) return copySelfCostTime; + int result = costTime; + for (int i = 0, imax = childs.Count; i < imax; i++) + { + var item = childs[i]; + result -= item.costTime; + } + + return Math.Max(result, 0); } } - //private static Dictionary m_sampleDict = new Dictionary(256); - - public static void SendMessage(NetBase sample) + public bool CheckSampleValid() { - if (m_client == null) + bool result = false; + do { - sample.Restore(); - return; - } - lock (m_sampleQueue) - { - m_sampleQueue.Enqueue(sample); - } + if (needShow) + { + result = true; + break; + } + var setting = LuaDeepProfilerSetting.Instance; + if (setting != null && !setting.discardInvalid) + { + result = true; + break; + } + + if (costLuaGC != 0) + { + result = true; + break; + } + + if (costMonoGC != 0) + { + result = true; + break; + } + + if (costTime > 10000) + { + result = true; + break; + } + + } while (false); + + + return result; } - #endregion - #region private - private static void DoSendMessage() + private static Dictionary> m_fullNamePool = new Dictionary>(); + public string fullName { - while (true) + get { - try + if (_father == null) return name; + + if (_fullName == null) { - if (m_sendThread == null) + Dictionary childDict; + if (!m_fullNamePool.TryGetValue(_father.fullName, out childDict)) { - UnityEngine.Debug.LogError("m_sendThread null"); - return; + childDict = new Dictionary(); + m_fullNamePool.Add(_father.fullName, childDict); } - if (m_sampleQueue.Count > 0) + + if (!childDict.TryGetValue(name, out _fullName)) { - while (m_sampleQueue.Count > 0) + string value = name; + var f = _father; + while (f != null) { - NetBase s = null; - lock (m_sampleQueue) - { - s = m_sampleQueue.Dequeue(); - } - bw.Write(PACK_HEAD); - if (s is Sample) - { - bw.Write((int)0); - } - else if (s is LuaRefInfo) - { - bw.Write((int)1); - } - else if (s is LuaDiffInfo) - { - bw.Write((int)2); - } - Serialize(s, bw); - s.Restore(); + value = f.name + value; + f = f.fahter; } + _fullName = value; + childDict[name] = string.Intern(_fullName); } - else if (m_frameCount != SampleData.frameCount) - { - bw.Write(PACK_HEAD); - //写入message 头编号 - bw.Write((int)0); - Sample s = Sample.Create(0, (int)LuaLib.GetLuaMemory(LuaProfiler.mainL), ""); - Serialize(s, bw); - s.Restore(); - m_frameCount = SampleData.frameCount; - } - Thread.Sleep(10); + + return _fullName; } -#pragma warning disable 0168 - catch (ThreadAbortException e) { } - catch (Exception e) + else { - UnityEngine.Debug.Log(e); - Close(); + return _fullName; } -#pragma warning restore 0168 } - } - private static void DoRecieveMessage() + public Sample fahter { - while (true) + set { - try + if (value != null) { - if (m_receiveThread == null) + bool needAdd = true; + var childList = value.childs; + for (int i = 0,imax = childList.Count;im_receiveThread null"); - return; - } - if (ns.CanRead && ns.DataAvailable) - { - int head = br.ReadInt32(); - //处理粘包 - while (head == PACK_HEAD) + var item = childList[i]; + if (item.name == name) { - int messageId = br.ReadInt32(); - switch (messageId) - { - case 0: - { - LuaProfiler.SendAllRef(); - } - break; - case 1: - { - lock (m_client) - { - LuaHook.MarkRecordServer(); - } - } - break; - case 2: - { - lock (m_client) - { - LuaHook.DiffServer(); - } - } - break; - } - head = br.ReadInt32(); + needAdd = false; + item.AddSample(this); + break; } } + if (needAdd) + { + childList.Add(this); + _father = value; + } } - catch (Exception e) + else { - UnityEngine.Debug.Log(e); + _father = null; } - Thread.Sleep(10); + } + get + { + return _father; } } + #endregion - private static int m_key = 0; - public static int GetUniqueKey() + public void AddSample(Sample s) { - return m_key++; + calls += s.calls; + costLuaGC += Math.Max(s.costLuaGC, 0); + costMonoGC += Math.Max(s.costMonoGC, 0); + costTime += s.costTime; + for (int i = s.childs.Count - 1; i >= 0; i--) + { + var item = s.childs[i]; + item.fahter = this; + if (item.fahter != s) + { + s.childs.RemoveAt(i); + } + } } - private static Dictionary> m_strDict = new Dictionary>(8192); - private static bool GetBytes(string s, out byte[] result, out int index) + + public static Sample Create(long time, int memory, string name) { - bool ret = true; - KeyValuePair keyValuePair; - if (!m_strDict.TryGetValue(s, out keyValuePair)) + Sample s = PacketFactory.GetPacket(); + + s.calls = 1; + s.currentTime = time; + s.currentLuaMemory = memory; + s.currentMonoMemory = (int)GC.GetTotalMemory(false); + s.frameCount = SampleData.frameCount; + s.fps = SampleData.fps; + s.pss = SampleData.pss; + s.power = SampleData.power; + s.costLuaGC = 0; + s.costMonoGC = 0; + s.name = name; + s.costTime = 0; + s._father = null; + s.childs.Clear(); + s._fullName = null; + s.needShow = false; + + return s; + } + + public override void OnRelease() + { + lock (this) { - result = Encoding.UTF8.GetBytes(s); - index = GetUniqueKey(); - keyValuePair = new KeyValuePair(index, result); - m_strDict.Add(s, keyValuePair); - ret = false; + for (int i = 0, imax = childs.Count; i < imax; i++) + { + PacketFactory.Release(childs[i]); + } + _fullName = null; + childs.Clear(); } - else + } + + public void Restore() + { + PacketFactory.Release(this); + } + + public Sample Clone() + { + Sample s = new Sample(); + + s.calls = calls; + s.frameCount = frameCount; + s.fps = fps; + s.pss = pss; + s.power = power; + s.costMonoGC = costMonoGC; + s.costLuaGC = costLuaGC; + s.name = name; + s.costTime = costTime; + + int childCount = childs.Count; + for (int i = 0; i < childCount; i++) { - index = keyValuePair.Key; - result = keyValuePair.Value; + Sample child = childs[i].Clone(); + child.fahter = s; } - return ret; + s.currentLuaMemory = currentLuaMemory; + s.currentMonoMemory = currentMonoMemory; + s.currentTime = currentTime; + return s; + } + + #endregion + + #region static + + private static Action OnReciveSample; + + public static void RegAction(Action action) + { + OnReciveSample = action; } - private static void Serialize(NetBase o, BinaryWriter bw) + + public static void UnRegAction() { - if (o is Sample) + OnReciveSample = null; + } + #endregion + + #region virtual + public override void Read(BinaryReader br) + { + calls = br.ReadInt32(); + frameCount = br.ReadInt32(); + fps = br.ReadSingle(); + pss = br.ReadUInt32(); + power = br.ReadSingle(); + costLuaGC = br.ReadInt32(); + costMonoGC = br.ReadInt32(); + name = br.ReadString(); + + costTime = br.ReadInt32(); + currentLuaMemory = br.ReadInt32(); + currentMonoMemory = br.ReadInt32(); + ushort childCount = br.ReadUInt16(); + for (int i = 0; i < childCount; i++) { - Sample s = (Sample)o; - + var s = PacketFactory.GetPacket(); + s.Read(br); + childs.Add(s); + } + } + + public override void Write(BinaryWriter bw) + { + Sample s = this; bw.Write(s.calls); bw.Write(s.frameCount); bw.Write(s.fps); @@ -297,7 +335,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s.power); bw.Write(s.costLuaGC); bw.Write(s.costMonoGC); - WriteString(bw, s.name); + bw.Write(s.name); bw.Write(s.costTime); bw.Write(s.currentLuaMemory); @@ -316,7 +354,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s0.power); bw.Write(s0.costLuaGC); bw.Write(s0.costMonoGC); - WriteString(bw, s0.name); + bw.Write(s0.name); bw.Write(s0.costTime); bw.Write(s0.currentLuaMemory); @@ -333,7 +371,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s1.power); bw.Write(s1.costLuaGC); bw.Write(s1.costMonoGC); - WriteString(bw, s1.name); + bw.Write(s1.name); bw.Write(s1.costTime); bw.Write(s1.currentLuaMemory); @@ -350,7 +388,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s2.power); bw.Write(s2.costLuaGC); bw.Write(s2.costMonoGC); - WriteString(bw, s2.name); + bw.Write(s2.name); bw.Write(s2.costTime); bw.Write(s2.currentLuaMemory); @@ -367,7 +405,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s3.power); bw.Write(s3.costLuaGC); bw.Write(s3.costMonoGC); - WriteString(bw, s3.name); + bw.Write(s3.name); bw.Write(s3.costTime); bw.Write(s3.currentLuaMemory); @@ -384,7 +422,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s4.power); bw.Write(s4.costLuaGC); bw.Write(s4.costMonoGC); - WriteString(bw, s4.name); + bw.Write(s4.name); bw.Write(s4.costTime); bw.Write(s4.currentLuaMemory); @@ -401,7 +439,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s5.power); bw.Write(s5.costLuaGC); bw.Write(s5.costMonoGC); - WriteString(bw, s5.name); + bw.Write(s5.name); bw.Write(s5.costTime); bw.Write(s5.currentLuaMemory); @@ -418,7 +456,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s6.power); bw.Write(s6.costLuaGC); bw.Write(s6.costMonoGC); - WriteString(bw, s6.name); + bw.Write(s6.name); bw.Write(s6.costTime); bw.Write(s6.currentLuaMemory); @@ -435,7 +473,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s7.power); bw.Write(s7.costLuaGC); bw.Write(s7.costMonoGC); - WriteString(bw, s7.name); + bw.Write(s7.name); bw.Write(s7.costTime); bw.Write(s7.currentLuaMemory); @@ -452,7 +490,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s8.power); bw.Write(s8.costLuaGC); bw.Write(s8.costMonoGC); - WriteString(bw, s8.name); + bw.Write(s8.name); bw.Write(s8.costTime); bw.Write(s8.currentLuaMemory); @@ -469,7 +507,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s9.power); bw.Write(s9.costLuaGC); bw.Write(s9.costMonoGC); - WriteString(bw, s9.name); + bw.Write(s9.name); bw.Write(s9.costTime); bw.Write(s9.currentLuaMemory); @@ -486,7 +524,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s10.power); bw.Write(s10.costLuaGC); bw.Write(s10.costMonoGC); - WriteString(bw, s10.name); + bw.Write(s10.name); bw.Write(s10.costTime); bw.Write(s10.currentLuaMemory); @@ -503,7 +541,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s11.power); bw.Write(s11.costLuaGC); bw.Write(s11.costMonoGC); - WriteString(bw, s11.name); + bw.Write(s11.name); bw.Write(s11.costTime); bw.Write(s11.currentLuaMemory); @@ -520,7 +558,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s12.power); bw.Write(s12.costLuaGC); bw.Write(s12.costMonoGC); - WriteString(bw, s12.name); + bw.Write(s12.name); bw.Write(s12.costTime); bw.Write(s12.currentLuaMemory); @@ -537,7 +575,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s13.power); bw.Write(s13.costLuaGC); bw.Write(s13.costMonoGC); - WriteString(bw, s13.name); + bw.Write(s13.name); bw.Write(s13.costTime); bw.Write(s13.currentLuaMemory); @@ -554,7 +592,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s14.power); bw.Write(s14.costLuaGC); bw.Write(s14.costMonoGC); - WriteString(bw, s14.name); + bw.Write(s14.name); bw.Write(s14.costTime); bw.Write(s14.currentLuaMemory); @@ -571,7 +609,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s15.power); bw.Write(s15.costLuaGC); bw.Write(s15.costMonoGC); - WriteString(bw, s15.name); + bw.Write(s15.name); bw.Write(s15.costTime); bw.Write(s15.currentLuaMemory); @@ -588,7 +626,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s16.power); bw.Write(s16.costLuaGC); bw.Write(s16.costMonoGC); - WriteString(bw, s16.name); + bw.Write(s16.name); bw.Write(s16.costTime); bw.Write(s16.currentLuaMemory); @@ -605,7 +643,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s17.power); bw.Write(s17.costLuaGC); bw.Write(s17.costMonoGC); - WriteString(bw, s17.name); + bw.Write(s17.name); bw.Write(s17.costTime); bw.Write(s17.currentLuaMemory); @@ -622,7 +660,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s18.power); bw.Write(s18.costLuaGC); bw.Write(s18.costMonoGC); - WriteString(bw, s18.name); + bw.Write(s18.name); bw.Write(s18.costTime); bw.Write(s18.currentLuaMemory); @@ -639,7 +677,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s19.power); bw.Write(s19.costLuaGC); bw.Write(s19.costMonoGC); - WriteString(bw, s19.name); + bw.Write(s19.name); bw.Write(s19.costTime); bw.Write(s19.currentLuaMemory); @@ -656,7 +694,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s20.power); bw.Write(s20.costLuaGC); bw.Write(s20.costMonoGC); - WriteString(bw, s20.name); + bw.Write(s20.name); bw.Write(s20.costTime); bw.Write(s20.currentLuaMemory); @@ -673,7 +711,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s21.power); bw.Write(s21.costLuaGC); bw.Write(s21.costMonoGC); - WriteString(bw, s21.name); + bw.Write(s21.name); bw.Write(s21.costTime); bw.Write(s21.currentLuaMemory); @@ -690,7 +728,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s22.power); bw.Write(s22.costLuaGC); bw.Write(s22.costMonoGC); - WriteString(bw, s22.name); + bw.Write(s22.name); bw.Write(s22.costTime); bw.Write(s22.currentLuaMemory); @@ -707,7 +745,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s23.power); bw.Write(s23.costLuaGC); bw.Write(s23.costMonoGC); - WriteString(bw, s23.name); + bw.Write(s23.name); bw.Write(s23.costTime); bw.Write(s23.currentLuaMemory); @@ -724,7 +762,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s24.power); bw.Write(s24.costLuaGC); bw.Write(s24.costMonoGC); - WriteString(bw, s24.name); + bw.Write(s24.name); bw.Write(s24.costTime); bw.Write(s24.currentLuaMemory); @@ -741,7 +779,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s25.power); bw.Write(s25.costLuaGC); bw.Write(s25.costMonoGC); - WriteString(bw, s25.name); + bw.Write(s25.name); bw.Write(s25.costTime); bw.Write(s25.currentLuaMemory); @@ -758,7 +796,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s26.power); bw.Write(s26.costLuaGC); bw.Write(s26.costMonoGC); - WriteString(bw, s26.name); + bw.Write(s26.name); bw.Write(s26.costTime); bw.Write(s26.currentLuaMemory); @@ -775,7 +813,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) bw.Write(s27.power); bw.Write(s27.costLuaGC); bw.Write(s27.costMonoGC); - WriteString(bw, s27.name); + bw.Write(s27.name); bw.Write(s27.costTime); bw.Write(s27.currentLuaMemory); @@ -785,7 +823,7 @@ private static void Serialize(NetBase o, BinaryWriter bw) for (int i28 = 0, i28max = childs28.Count; i28 < i28max; i28++) { Sample s28 = childs28[i28]; - Serialize(s28, bw); + s28.Write(bw); } } } @@ -813,116 +851,59 @@ private static void Serialize(NetBase o, BinaryWriter bw) } } } - } } } - else if (o is LuaRefInfo) - { - LuaRefInfo r = (LuaRefInfo)o; - - bw.Write(r.cmd); - bw.Write(SampleData.frameCount); - WriteString(bw, r.name); - WriteString(bw, r.addr); - bw.Write(r.type); - } - else if (o is LuaDiffInfo) + } + + public override void OnRun() + { + OnReciveSample?.Invoke(this); + } + + #endregion + + #region serialize + public static void SerializeList(List samples, string path) + { + FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write); + MBinaryWriter b = new MBinaryWriter(fs); +#if UNITY_EDITOR + UnityEditor.EditorUtility.ClearProgressBar(); +#endif + b.Write(samples.Count); + for (int i = 0, imax = samples.Count; i < imax; i++) { - LuaDiffInfo ld = (LuaDiffInfo)o; - // add - var addDict = ld.addRef; - bw.Write(addDict.Count); - foreach (var item in addDict) - { - bw.Write((int)item.Key); - bw.Write(item.Value.Count); - foreach (var v in item.Value) - { - WriteString(bw, v); - } - } - var addDetail = ld.addDetail; - bw.Write(addDetail.Count); - foreach (var item in addDetail) - { - WriteString(bw, item.Key); - var list = item.Value; - bw.Write(list.Count); - foreach (var listItem in list) - { - WriteString(bw, listItem); - } - } - // rm - var rmDict = ld.rmRef; - bw.Write(rmDict.Count); - foreach (var item in rmDict) - { - bw.Write((int)item.Key); - bw.Write(item.Value.Count); - foreach (var v in item.Value) - { - WriteString(bw, v); - } - } - var rmDetail = ld.rmDetail; - bw.Write(rmDetail.Count); - foreach (var item in rmDetail) - { - WriteString(bw, item.Key); - var list = item.Value; - bw.Write(list.Count); - foreach (var listItem in list) - { - WriteString(bw, listItem); - } - } - - // null - var nullDict = ld.nullRef; - bw.Write(nullDict.Count); - foreach (var item in nullDict) - { - bw.Write((int)item.Key); - bw.Write(item.Value.Count); - foreach (var v in item.Value) - { - WriteString(bw, v); - } - } - var nullDetail = ld.nullDetail; - bw.Write(nullDetail.Count); - foreach (var item in nullDetail) - { - WriteString(bw, item.Key); - var list = item.Value; - bw.Write(list.Count); - foreach (var listItem in list) - { - WriteString(bw, listItem); - } - } + Sample s = samples[i]; +#if UNITY_EDITOR + UnityEditor.EditorUtility.DisplayProgressBar("serialize profiler data", "serialize " + s.name, (float)i / (float)imax); +#endif + s.Write(b); } + b.Close(); +#if UNITY_EDITOR + UnityEditor.EditorUtility.ClearProgressBar(); +#endif } - public static void WriteString(BinaryWriter bw, string name) + public static List DeserializeList(string path) { - byte[] datas; - int index = 0; - bool isRef = GetBytes(name, out datas, out index); - bw.Write(isRef); - bw.Write(index); - if (!isRef) + FileStream ms = new FileStream(path, FileMode.Open, FileAccess.Read); + MBinaryReader b = new MBinaryReader(ms); + + int count = b.ReadInt32(); + List result = new List(count); + + for (int i = 0, imax = count; i < imax; i++) { - bw.Write(datas.Length); - bw.Write(datas); + Sample s = new Sample(); + s.Read(b); + result.Add(s); } - } + b.Close(); + return result; + } #endregion - } - -} - -#endif \ No newline at end of file + +} \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs.meta new file mode 100644 index 00000000..8729768e --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Core/NetWork/Packet/Sample.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 07fd026c8ec04d7cbb964599d3db835e +timeCreated: 1658392633 \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs new file mode 100644 index 00000000..a7b826ab --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs @@ -0,0 +1,148 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Reflection; +using System.Threading; +using UnityEngine; + +namespace MikuLuaProfiler +{ + public static class NetWorkMgrClient + { + private static NetworkStream ns; + private static MBinaryReader br; + private static MBinaryWriter bw; + private const int PACK_HEAD = 0x114514; + + private static Dictionary receiveMsgDict = new Dictionary(); + private static Dictionary receiveMsgTypeDict = new Dictionary(); + private static Thread receiveThread; + private static TcpClient tcpClient; + private static bool _isConnected = false; + + static NetWorkMgrClient() + { + var types = typeof(NetWorkMgr).Assembly.GetTypes(); + foreach (var t in types) + { + if (t.Namespace == "MikuLuaProfiler" + && t.IsSubclassOf(typeof(PacketBase))) + { + var attr = t.GetCustomAttribute(); + if (attr != null) + { + receiveMsgDict[(int)attr.msgHead] = t; + receiveMsgTypeDict[t] = (int)attr.msgHead; + } + } + } + } + + public static void Disconnect() + { + if (tcpClient != null) + { + SendMessage(new PKGDisconnect()); + tcpClient.Close(); + tcpClient.Dispose(); + tcpClient = null; + if (bw != null) + { + bw.Dispose(); + bw = null; + } + + if (br != null) + { + br.Dispose(); + br = null; + } + + _isConnected = false; + } + } + + public static void Connect(string ip, int port) + { + tcpClient = new TcpClient(); + tcpClient.Connect(ip, port); + + ns = tcpClient.GetStream(); + br = new MBinaryReader(ns); + bw = new MBinaryWriter(ns); + if (receiveThread != null) + { + receiveThread.Abort(); + receiveThread = null; + } + receiveThread = new Thread(DoReceiveMessage); + receiveThread.Name = "Client ReceiveThread"; + receiveThread.Start(); + _isConnected = true; + } + + public static bool GetIsConnect() + { + return _isConnected; + } + + private static void DoReceiveMessage() + { + while (true) + { + try + { + if (tcpClient == null) + { + break; + } + + if (ns.CanRead && ns.DataAvailable) + { + int head = br.ReadInt32(); + //处理粘包 + while (head == PACK_HEAD) + { + int messageId = br.ReadInt32(); + Type t; + if (receiveMsgDict.TryGetValue(messageId, out t)) + { + var msg = Activator.CreateInstance(t) as PacketBase; + msg.Read(br); + msg.OnRun(); + } + } + } + } + catch (Exception e) + { + Debug.Log(e.ToString()); + break; + } + Thread.Sleep(10); + } + + + if (receiveThread != null) + { + receiveThread.Abort(); + receiveThread = null; + } + } + + public static void SendMessage(PacketBase msg) + { + if(bw == null) return; + + bw.Write(PACK_HEAD); + int msgId = 0; + receiveMsgTypeDict.TryGetValue(msg.GetType(), out msgId); + bw.Write(msgId); + msg.Write(bw); + msg.WriteOver(); + } + + } +} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs.meta b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs.meta new file mode 100644 index 00000000..add20164 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkMgr.Client.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8da5bc0f18e767f47a104886d64dc3a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs deleted file mode 100644 index 88770d47..00000000 --- a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/NetWork/NetWorkServer.cs +++ /dev/null @@ -1,467 +0,0 @@ -/* - ######### - ############ - ############# - ## ########### - ### ###### ##### - ### ####### #### - ### ########## #### - #### ########### #### - #### ########### ##### - ##### ### ######## ##### - ##### ### ######## ###### - ###### ### ########### ###### - ###### #### ############## ###### - ####### ##################### ###### - ####### ###################### ###### - ####### ###### ################# ###### - ####### ###### ###### ######### ###### - ####### ## ###### ###### ###### - ####### ###### ##### ##### - ###### ##### ##### #### - ##### #### ##### ### - ##### ### ### # - ### ### ### - ## ### ### -__________#_______####_______####______________ - 我们的未来没有BUG -* ============================================================================== -* Filename: NetWorkServer -* Created: 2018/7/13 14:29:22 -* Author: エル・プサイ・コングリィ -* Purpose: -* ============================================================================== -*/ - -#if UNITY_5_6_OR_NEWER && UNITY_EDITOR_WIN -namespace MikuLuaProfiler -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Sockets; - using System.Text; - using System.Threading; - using UnityEditor; - - public static class NetWorkServer - { - private static TcpListener tcpLister; - private static TcpClient tcpClient = null; - private static Thread receiveThread; - private static Thread sendThread; - public static Thread acceptThread; - private static NetworkStream ns; - private static BinaryReader br; - private static BinaryWriter bw; - - private const int PACK_HEAD = 0x23333333; - private static Action m_onReceiveSample; - private static Action m_onReceiveRef; - private static Action m_onReceiveDiff; - private static Queue m_cmdQueue = new Queue(32); - - public static bool CheckIsReceiving() - { - return tcpClient != null; - } - - public static void RegisterOnReceiveSample(Action onReceive) - { - m_onReceiveSample = onReceive; - } - - public static void RegisterOnReceiveRefInfo(Action onReceive) - { - m_onReceiveRef = onReceive; - } - - public static void RegisterOnReceiveDiffInfo(Action onReceive) - { - m_onReceiveDiff = onReceive; - } - - public static void UnRegisterReceive() - { - m_onReceiveSample = null; - m_onReceiveRef = null; - m_onReceiveDiff = null; - } - - public static void BeginListen(string ip, int port) - { - if (tcpLister != null) return; - - m_strCacheDict.Clear(); - - IPAddress myIP = IPAddress.Parse(ip); - tcpLister = new TcpListener(myIP, port); - tcpLister.Start(); - acceptThread = new Thread(AcceptThread); - acceptThread.Start(); - - } - - private static void AcceptThread() - { - UnityEngine.Debug.Log("begin listerner"); - tcpClient = null; - - while (true) - { - AcceptAClient(); - Thread.Sleep(100); - } - } - - private static void AcceptAClient() - { - if (tcpClient != null) return; - - try - { - if (tcpClient == null) - { - tcpClient = tcpLister.AcceptTcpClient(); - } - } - catch(Exception e) - { - UnityEngine.Debug.Log(e); - UnityEngine.Debug.Log("start fail"); - Close(); - return; - } - LuaProfilerWindow.ClearTreeView(); - - UnityEngine.Debug.Log("link start"); - tcpClient.ReceiveTimeout = 1000000; - ns = tcpClient.GetStream(); - br = new BinaryReader(ns); - bw = new BinaryWriter(ns); - ns.ReadTimeout = 600000; - - // 启动一个线程来接受请求 - receiveThread = new Thread(DoReceiveMessage); - receiveThread.Start(); - - SendCmd(0); - // 启动一个线程来发送请求 - sendThread = new Thread(DoSendMessage); - sendThread.Start(); - } - - // 0获取ref表,1 记录下当前全局表状态,2 diff 当前状态与历史记录 - public static void SendCmd(int cmd) - { - lock (m_cmdQueue) - { - m_cmdQueue.Enqueue(cmd); - } - } - - // 接受请求 - private static void DoReceiveMessage() - { - UnityEngine.Debug.Log("begin to listener"); - - //sign为true 循环接受数据 - while (true) - { - try - { - if (tcpClient == null) - { - Close(); - return; - } - - if (ns.CanRead && ns.DataAvailable) - { - try - { - int head = br.ReadInt32(); - //处理粘包 - while (head == PACK_HEAD) - { - int messageId = br.ReadInt32(); - switch (messageId) - { - case 0: - { - Sample s = Deserialize(br); - if (m_onReceiveSample != null) - { - m_onReceiveSample(s); - } - } - break; - case 1: - { - var r = DeserializeRef(br); - if (m_onReceiveRef != null) - { - m_onReceiveRef(r); - } - } - break; - case 2: - { - var r = DeserializeDiff(br); - if (m_onReceiveDiff != null) - { - m_onReceiveDiff(r); - } - } - break; - } - - } - } -#pragma warning disable 0168 - catch (EndOfStreamException ex) - { - Close(); - return; - } -#pragma warning restore 0168 - } - - } -#pragma warning disable 0168 - catch (ThreadAbortException e) { - } - catch (Exception e) - { - Close(); - } -#pragma warning restore 0168 - Thread.Sleep(10); - } - } - - private static void DoSendMessage() - { - while (true) - { - try - { - if (ns.CanWrite) - { - lock (m_cmdQueue) - { - while (m_cmdQueue.Count > 0) - { - int msgId = -1; - msgId = m_cmdQueue.Dequeue(); - bw.Write(PACK_HEAD); - bw.Write(msgId); - } - } - } - } -#pragma warning disable 0168 - catch (ThreadAbortException e) { } - catch (Exception e) - { - UnityEngine.Debug.Log(e); - Close(); - } -#pragma warning restore 0168 - Thread.Sleep(10); - } - } - - public static void RealClose() - { - try - { - if (tcpLister != null) - { - tcpLister.Stop(); - tcpLister = null; - } - } - catch (Exception e) - { - UnityEngine.Debug.Log(e); - } - if (acceptThread != null) - { - try - { - acceptThread.Abort(); - } - catch { } - acceptThread = null; - } - Close(); - } - - public static void Close() - { - tcpClient = null; - if (receiveThread != null) - { - try - { - receiveThread.Abort(); - } - catch { } - receiveThread = null; - } - if (sendThread != null) - { - try - { - sendThread.Abort(); - } - catch { } - sendThread = null; - } - } - - private static Dictionary m_strCacheDict = new Dictionary(4096); - public static Sample Deserialize(BinaryReader br) - { - Sample s = null; - - if (LuaDeepProfilerSetting.Instance.isLocal) - { - s = Sample.Deserialize(br); - } - else - { - s = new Sample(); - s.calls = br.ReadInt32(); - s.frameCount = br.ReadInt32(); - s.fps = br.ReadSingle(); - s.pss = br.ReadUInt32(); - s.power = br.ReadSingle(); - s.costLuaGC = br.ReadInt32(); - s.costMonoGC = br.ReadInt32(); - s.name = ReadString(br); - - s.costTime = br.ReadInt32(); - s.currentLuaMemory = br.ReadInt32(); - s.currentMonoMemory = br.ReadInt32(); - int count = br.ReadUInt16(); - for (int i = 0, imax = count; i < imax; i++) - { - Deserialize(br).fahter = s; - } - - int lua_gc = 0; - int mono_gc = 0; - for (int i = 0, imax = s.childs.Count; i < imax; i++) - { - var item = s.childs[i]; - lua_gc += item.costLuaGC; - mono_gc += item.costMonoGC; - } - s.costLuaGC = Math.Max(lua_gc, s.costLuaGC); - s.costMonoGC = Math.Max(mono_gc, s.costMonoGC); - } - - return s; - } - - public static LuaRefInfo DeserializeRef(BinaryReader br) - { - LuaRefInfo refInfo = LuaRefInfo.Create(); - refInfo.cmd = br.ReadByte(); - refInfo.frameCount = br.ReadInt32(); - refInfo.name = ReadString(br); - refInfo.addr = ReadString(br); - refInfo.type = br.ReadByte(); - - return refInfo; - } - public static LuaDiffInfo DeserializeDiff(BinaryReader br) - { - LuaDiffInfo diffInfo = LuaDiffInfo.Create(); - int addTypeCount = br.ReadInt32(); - for (int i = 0; i < addTypeCount; i++) - { - int type = br.ReadInt32(); - int valueCount = br.ReadInt32(); - for (int j = 0; j < valueCount; j++) - { - diffInfo.PushAddRef(ReadString(br), type); - } - } - int addDetailCount = br.ReadInt32(); - for (int i = 0; i < addDetailCount; i++) - { - string key = ReadString(br); - int count = br.ReadInt32(); - for (int ii = 0; ii < count; ii++) - { - diffInfo.PushAddDetail(key, ReadString(br)); - } - } - - int rmTypeCount = br.ReadInt32(); - for (int i = 0; i < rmTypeCount; i++) - { - int type = br.ReadInt32(); - int valueCount = br.ReadInt32(); - for (int j = 0; j < valueCount; j++) - { - diffInfo.PushRmRef(ReadString(br), type); - } - } - int rmDetailCount = br.ReadInt32(); - for (int i = 0; i < rmDetailCount; i++) - { - string key = ReadString(br); - int count = br.ReadInt32(); - for (int ii = 0; ii < count; ii++) - { - diffInfo.PushRmDetail(key, ReadString(br)); - } - } - - int nullCount = br.ReadInt32(); - for (int i = 0; i < nullCount; i++) - { - diffInfo.PushNullRef(ReadString(br), br.ReadInt32()); - } - int nullDetailCount = br.ReadInt32(); - for (int i = 0; i < nullDetailCount; i++) - { - string key = ReadString(br); - int count = br.ReadInt32(); - for (int ii = 0; ii < count; ii++) - { - diffInfo.PushNullDetail(key, ReadString(br)); - } - } - - return diffInfo; - } - public static string ReadString(BinaryReader br) - { - string result = null; - - bool isRef = br.ReadBoolean(); - int index = br.ReadInt32(); - if (!isRef) - { - int len = br.ReadInt32(); - byte[] datas = br.ReadBytes(len); - result = string.Intern(Encoding.UTF8.GetString(datas)); - m_strCacheDict[index] = result; - } - else - { - result = m_strCacheDict[index]; - } - - return result; - } - } - -} -#endif \ No newline at end of file diff --git a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerTreeView.cs b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerTreeView.cs index 390d963f..d4ecb28f 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerTreeView.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerTreeView.cs @@ -336,7 +336,6 @@ public Sample CopySelfToSample() s.name = m_originName; s.costTime = (int)totalTime; - s.captureUrl = ""; s.currentLuaMemory = 0; s.currentMonoMemory = 0; return s; @@ -359,7 +358,6 @@ public Sample CopyToSample() Sample child = childs[i].CopyToSample(); child.fahter = s; } - s.captureUrl = ""; s.currentLuaMemory = 0; s.currentMonoMemory = 0; return s; @@ -773,15 +771,6 @@ public void ReLoadSamples(int start, int end) end = Mathf.Max(Mathf.Min(end, history.Count - 1), 0); start = Mathf.Max(Mathf.Min(start, history.Count - 1), 0); - //if (end == start) - //{ - // LoadRootSample(history[start], false, true); - // return; - //} - - startUrl = history[start].captureUrl; - endUrl = history[end].captureUrl; - end = Mathf.Min(history.Count - 1, end); m_catchLuaMemory = 0; for (int i = start; i <= end; i++) diff --git a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerWindow.cs b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerWindow.cs index 42259135..df100622 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerWindow.cs +++ b/LuaProfiler/example/Assets/LuaProfiler/Editor/Window/ProfilerWin/TreeView/LuaProfilerWindow.cs @@ -368,28 +368,41 @@ void DoToolbar() if (!LuaDeepProfilerSetting.Instance.isLocal) { - if (GUILayout.Button("OpenService", EditorStyles.toolbarButton, GUILayout.Height(30))) - { - ClearConsole(); - NetWorkServer.RealClose(); - currentFrameIndex = 0; - m_TreeView.Clear(true); - LuaProfiler.UnRegistReceive(); - NetWorkServer.UnRegisterReceive(); - NetWorkServer.RegisterOnReceiveSample(m_TreeView.LoadRootSample); - NetWorkServer.RegisterOnReceiveRefInfo(m_luaRefScrollView.DelRefInfo); - NetWorkServer.RegisterOnReceiveDiffInfo(m_luaDiffScrollView.DelDiffInfo); - NetWorkServer.BeginListen("0.0.0.0", port); - } + GUILayout.Label("ip:", GUILayout.Height(30), GUILayout.Width(35)); + LuaDeepProfilerSetting.Instance.ip = EditorGUILayout.TextField(LuaDeepProfilerSetting.Instance.ip, GUILayout.Height(16), GUILayout.Width(150)); + GUILayout.Label("port:", GUILayout.Height(30), GUILayout.Width(35)); port = EditorGUILayout.IntField(port, GUILayout.Height(16), GUILayout.Width(50)); - if (GUILayout.Button("CloseService", EditorStyles.toolbarButton, GUILayout.Height(30))) + if (!NetWorkMgrClient.GetIsConnect()) { - ClearConsole(); - NetWorkServer.RealClose(); - UnityEngine.Debug.Log("disconnect"); + if (GUILayout.Button("Connect", GUILayout.Height(20))) + { + ClearConsole(); + NetWorkMgrClient.Disconnect(); + currentFrameIndex = 0; + m_TreeView.Clear(true); + LuaProfiler.UnRegistReceive(); + Sample.UnRegAction(); + LuaRefInfo.UnRegAction(); + + NetWorkMgrClient.Connect(LuaDeepProfilerSetting.Instance.ip, port); + Sample.RegAction(m_TreeView.LoadRootSample); + LuaRefInfo.RegAction(m_luaRefScrollView.DelRefInfo); + //NetWorkServer.RegisterOnReceiveDiffInfo(m_luaDiffScrollView.DelDiffInfo); + + } } + else + { + if (GUILayout.Button("Disconnect",GUILayout.Height(20))) + { + ClearConsole(); + NetWorkMgrClient.Disconnect(); + UnityEngine.Debug.Log("disconnect"); + } + } + } else { @@ -434,12 +447,13 @@ void DoToolbar() } } + /* GUILayout.Space(25); if (GUILayout.Button("MarkStaticRecord", EditorStyles.toolbarButton, GUILayout.Height(30))) { if (!LuaDeepProfilerSetting.Instance.isLocal) { - NetWorkServer.SendCmd(3); + NetWorkMgrClient.SendCmd(3); } else { @@ -474,7 +488,7 @@ void DoToolbar() if (GUILayout.Button("ClearDiff", EditorStyles.toolbarButton, GUILayout.Height(30))) { m_luaDiffScrollView.Clear(); - } + }*/ GUILayout.Space(20); if (GUILayout.Button("AddLuaDir", EditorStyles.toolbarButton, GUILayout.Height(30))) @@ -489,15 +503,21 @@ void DoToolbar() { LocalToLuaIDE.ClearPath(); } - - GUILayout.Space(10); - if (NetWorkServer.acceptThread != null) + if (!LuaDeepProfilerSetting.Instance.isRecord) { - Color c = GUI.color; - GUI.color = Color.green; - GUILayout.Label("listerning.."); - GUI.color = c; + bool isSave = GUILayout.Button("Save", EditorStyles.toolbarButton, GUILayout.Height(30), GUILayout.Width(50)); + if (isSave) + { + m_TreeView.SaveResult(); + } + + bool isLoad = GUILayout.Button("Load", EditorStyles.toolbarButton, GUILayout.Height(30), GUILayout.Width(50)); + if (isLoad) + { + m_TreeView.LoadHistory(); + } } + #endregion #region gc value @@ -517,7 +537,10 @@ void DoToolbar() void DoRecord() { var instance = LuaDeepProfilerSetting.Instance; - if (!instance.isRecord) return; + if (!instance.isRecord) + { + return; + } EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); @@ -533,7 +556,7 @@ void DoRecord() { m_TreeView.Clear(true); m_luaRefScrollView.ClearRefInfo(true); - NetWorkServer.SendCmd(0); + //NetWorkServer.SendCmd(0); } if (state && !instance.isStartRecord) @@ -1216,11 +1239,12 @@ void HandleInputForChart(Rect expandRect) private void OpenLocalMode() { ClearConsole(); - NetWorkServer.RealClose(); + NetWorkMgrClient.Disconnect(); currentFrameIndex = 0; m_TreeView.Clear(true); LuaProfiler.UnRegistReceive(); - NetWorkServer.UnRegisterReceive(); + Sample.UnRegAction(); + LuaRefInfo.UnRegAction(); LuaProfiler.RegisterOnReceiveSample(m_TreeView.LoadRootSample); LuaProfiler.RegisterOnReceiveRefInfo(m_luaRefScrollView.DelRefInfo); LuaProfiler.RegisterOnReceiveDiffInfo(m_luaDiffScrollView.DelDiffInfo); diff --git a/LuaProfiler/example/Assets/LuaProfiler/Plugins.meta b/LuaProfiler/example/Assets/LuaProfiler/Plugins.meta index 41952b67..99628ebb 100644 --- a/LuaProfiler/example/Assets/LuaProfiler/Plugins.meta +++ b/LuaProfiler/example/Assets/LuaProfiler/Plugins.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9088dc344e398b9439bb19a6db49a937 +guid: ba70fc0a43afa084e8d42d5d7105bbf4 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android.meta b/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android.meta new file mode 100644 index 00000000..5f43e0b1 --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6076d8e2a9ee20e4fb7523c062353962 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java.meta b/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java.meta new file mode 100644 index 00000000..7dfdcacd --- /dev/null +++ b/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: e1219e1c64b4aad43abf2dc6ae5c1c4a +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java/ShadowHook.aar b/LuaProfiler/example/Assets/LuaProfiler/Plugins/Android/java/ShadowHook.aar new file mode 100644 index 0000000000000000000000000000000000000000..cc382a5fc03c213dfbe14adca4625dbd694758dc GIT binary patch literal 7662 zcmbW6WmH{FlkX1%cMBHW?cnYf{NNJYT@G+?caq@l?k>UIEx1dNph1GW4(~f_?%a9S z+%LEHs$IQT*S}WxuI?}WQAN&9X0ARm+F$Xheu(cV;*umPu9OA<4VQ*(1vxd~iiXpj){1RS!Mq?maczuZ( zbY@%ML{3A$?(yVZQANQE<{%17t8ab!(K6e^9fqXoj2ILYJrvdyB+n0Yo1WJ`WLw5| z!lEQ;=`jkk0>SFb`R3sqM+??xLdpuXmIb&lD)@p0u?xKB(R9m=BzG_3MvSJZS|zZ- z`jKdoS(ezk2B{vsL!jHD*2;74lPCcncku5VS>A?3zq$#+5U-__qpMOs=>NGk6YJJb zafASXFbM#F{Ju6*J7WmM9Kvj4?3|@-u1qACGAP8_BG79efFa1+yN<};yG{&8KqYey z2-bCMChHAqw~g(^&fJQfplt^mmb)Ey)>O2WxBF-6F5La<@}1I9lavg4;+o#Fnz6#H z_4Ar6@9Xa+eon9KRs?1ewT%1z+6)>e0&Y0BYG(vyc2s6%p0rR2*`0`~Dn=)BYi8o! zS~xh=A&!*`Z39NUf*6=*3HFQZBf-q)DA41`Xmj$spcRB>LvkwBafQV|P-bvbTN%%` zC(&l_FagI#j9Yf3-}X6Vg0 zg9;1PO!B>QJ(|tqjGwuUn(SPm)`yLk?}PcKYx?xn-7)vS(^8f>Ue`N4?8rZbQbDzK z9XUq3IgkE5d)A zYVKq9Umow9g;VVM__o!P14RYDWW8vizlBCw@Sk=*n1-Gbeo~IA@2O xB|Cq!?~Y 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

9yWn`3aw?#BWA$Q5=MdDxB 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

mT^0V4-bMCK@q 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 F{{h-(`^x|T diff --git a/LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java.meta b/LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java.meta deleted file mode 100644 index 052f6a38..00000000 --- a/LuaProfiler/example/Assets/Plugins/Android/java/ShadowHook.java.meta +++ /dev/null @@ -1,70 +0,0 @@ -fileFormatVersion: 2 -guid: ff63db311c1b8514090553be5cc7fdc9 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 1 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - : Any - second: - enabled: 0 - settings: - Exclude Android: 0 - Exclude Editor: 1 - Exclude Linux64: 1 - Exclude OSXUniversal: 1 - Exclude Win: 1 - Exclude Win64: 1 - - first: - Android: Android - second: - enabled: 1 - settings: - CPU: ARMv7 - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - CPU: AnyCPU - DefaultValueInitialized: true - OS: AnyOS - - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: AnyCPU - - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win - second: - enabled: 0 - settings: - CPU: x86 - - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: x86_64 - userData: - assetBundleName: - assetBundleVariant: diff --git a/LuaProfiler/example/Assets/Plugins/Android/libs/arm64-v8a/libshadowhook.so b/LuaProfiler/example/Assets/Plugins/Android/libs/arm64-v8a/libshadowhook.so deleted file mode 100644 index 00c9b9bca6855046212499ac2b586eb80beac08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320024 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

%&*va8B-)=Pr|T7WXz`U3p*_@6{TDd*y7&G2C$? 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 Peu4Ra`>rPIdRzYwiXvfJ diff --git a/LuaProfiler/example/Assets/XLua/Src/LuaDLL.cs b/LuaProfiler/example/Assets/XLua/Src/LuaDLL.cs index d74ae255..cc3cb8af 100644 --- a/LuaProfiler/example/Assets/XLua/Src/LuaDLL.cs +++ b/LuaProfiler/example/Assets/XLua/Src/LuaDLL.cs @@ -292,7 +292,7 @@ public static string lua_tostring(IntPtr L, int index) [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)] public static extern void lua_pushstring(IntPtr L, string str); #else - public static void lua_pushstring(IntPtr L, string str) //ҵʹ + public static void lua_pushstring(IntPtr L, string str) //ҵ��ʹ�� { if (str == null) { @@ -542,7 +542,7 @@ public static int lua_error(IntPtr L) //[DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)] //public static extern void xlua_pushbuffer(IntPtr L, byte[] buff); - //Unityɵstruct϶࣬⼸apiŻstruct + //����Unity����������ɵ�struct�϶࣬�⼸��api�����Ż�����struct [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)] public static extern bool xlua_pack_float2(IntPtr buff, int offset, float f1, float f2); [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)] diff --git a/LuaProfiler/example/Assets/XLua/Src/LuaEnv.cs b/LuaProfiler/example/Assets/XLua/Src/LuaEnv.cs index 61ec1eba..1fb69bd2 100644 --- a/LuaProfiler/example/Assets/XLua/Src/LuaEnv.cs +++ b/LuaProfiler/example/Assets/XLua/Src/LuaEnv.cs @@ -359,7 +359,7 @@ public void Tick() #endif } - //API + //����API public void GC() { Tick(); @@ -600,8 +600,8 @@ elseif not name then internal List customLoaders = new List(); - //loader : CustomLoader filepathrefͣrequireIJҪֵ֧ԣҪʵ· - // ֵnullظԴ޺ʵļ򷵻UTF8byte[] + //loader : CustomLoader�� filepath��������ref���ͣ�������require�IJ����������Ҫ֧�ֵ��ԣ���Ҫ�����ʵ·���� + // ����ֵ���������null��������ظ�Դ���޺��ʵ��ļ������򷵻�UTF8�����byte[] public void AddLoader(CustomLoader loader) { customLoaders.Add(loader);