From b4670c41788773d3999cedbde34d95557f08aeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JasonXuDeveloper=20-=20=E5=82=91?= Date: Thu, 22 Sep 2022 11:49:26 +1000 Subject: [PATCH] v0.7.4 --- CHANGE.md | 10 ++ README.md | 13 +- README_zh_cn.md | 12 +- .../JEngine/Core/Manager/TimeMgr.cs | 120 +----------------- .../Dll/Hidden~/HotUpdateScripts.dll | Bin 102400 -> 102400 bytes .../Dll/Hidden~/HotUpdateScripts.pdb | Bin 43056 -> 43016 bytes 6 files changed, 26 insertions(+), 129 deletions(-) diff --git a/CHANGE.md b/CHANGE.md index 786ae1e5..e38820ac 100644 --- a/CHANGE.md +++ b/CHANGE.md @@ -1,5 +1,15 @@ ## All Versions +### 0.7.4 (September 22 2022) + +- Bug **fixed** +- **Imported ** high performance C# library Nino +- **Optimized** JBehaviour performance and GC +- **Optimized** MonoBehaviour update logics and GC +- **Optimized** blockwised decrypt intepret module's allocated memroy size and GC + + + ### 0.7.3 (July 14 2022) - Bug **fixed** diff --git a/README.md b/README.md index d234ce8d..f17fdc60 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@

-# JENGINE v0.7.3 +# JENGINE v0.7.4 **JEngine is an out-of-the-box framework designed for Unity developers. It encapsulates powerful functions. Beginners can also get started quickly and easily create games that can be updated hotly.** @@ -114,14 +114,13 @@ For new projects, you only need to pull a copy of the JEngine source code, then -## v0.7.3 New Features +## v0.7.4 New Features - Bug **fixed** -- **Updated** ILRuntime -- **Updated** Bundle Master -- **Enhanced** JBehaviour performance -- **Enhanced** ClassBind runtime performance -- **Almost no GC allocation** async wait method +- **Imported ** high performance C# library Nino +- **Optimized** JBehaviour performance and GC +- **Optimized** MonoBehaviour update logics and GC +- **Optimized** blockwised decrypt intepret module's allocated memroy size and GC [Click here to see the change log](CHANGE.md) diff --git a/README_zh_cn.md b/README_zh_cn.md index c48fe5c9..97ce870e 100644 --- a/README_zh_cn.md +++ b/README_zh_cn.md @@ -39,7 +39,7 @@ -# JENGINE v0.7.3 +# JENGINE v0.7.4 JEngine是针对Unity开发者设计的**开箱即用**的框架,封装了强大的功能,小白也能**快速上手**,**轻松制作**可以**热更新的游戏** @@ -145,19 +145,19 @@ JEngine非常适合中小型项目,尤其是对于独立游戏开发者而言 **如果你觉得JEngine对你有帮助,请给该框架一个Star!** -## v0.7.3 最新功能 +## v0.7.4 最新功能 - Bug**修复** - **更新**ILRuntime -- **更新**Bundle Master +- **接入**高性能C#库Nino -- **优化**JBehaviour性能 +- **优化**JBehaviour性能及GC -- **优化**ClassBind运行性能 +- **优化**MonoBehaviour循环逻辑及GC -- **几乎无GC的**异步延时等待 +- **优化**分块解密解释执行所占用的内存及产生的GC [点击此处查看历史版本功能(英文)](CHANGE.md) diff --git a/UnityProject/Assets/Dependencies/JEngine/Core/Manager/TimeMgr.cs b/UnityProject/Assets/Dependencies/JEngine/Core/Manager/TimeMgr.cs index d78c4482..2d7b12de 100644 --- a/UnityProject/Assets/Dependencies/JEngine/Core/Manager/TimeMgr.cs +++ b/UnityProject/Assets/Dependencies/JEngine/Core/Manager/TimeMgr.cs @@ -28,6 +28,7 @@ using System.Threading; using System.Collections.Generic; using System.Collections.Concurrent; +using System.Threading.Tasks; using Timer = System.Threading.Timer; namespace JEngine.Core @@ -37,128 +38,15 @@ namespace JEngine.Core /// public static partial class TimeMgr { - /// - /// 线程安全字典 - /// - private static readonly ConcurrentDictionary> Timers = - new ConcurrentDictionary>(); - - /// - /// 计时器任务对象 - /// - private class TimerWorker - { - /// - /// 计时器 - /// - private readonly Timer _timer; - /// - /// 该任务使用哪个ETTask来设置回调 - /// - private readonly int _index; - /// - /// 延迟 - /// - private readonly int _ms; - /// - /// 上下文 - /// - private SynchronizationContext _ctx; - /// - /// 是否开始了 - /// - private bool _hasStart; - - /// - /// 构造一个任务,延迟是delay毫秒 - /// - /// - /// - public TimerWorker(int delay, SynchronizationContext ctx) - { - _ms = delay; - _index = Tasks.Count; - _ctx = ctx; - _hasStart = false; - Tasks.Add(ETTask.Create(true)); - _timer = new Timer(__ => - { - if (!_hasStart || Tasks[_index] == null) return; - _ctx?.Send(_ => { Tasks[_index]?.SetResult(); }, null); - }, null, _ms, - Timeout.Infinite); - } - - /// - /// 开始在一个指定上下文里等待 - /// - /// - public void Start(SynchronizationContext context) - { - _ctx = context; - if (Tasks[_index] == null) - { - Tasks[_index] = ETTask.Create(true); - } - - _hasStart = true; - _timer.Change(_ms, Timeout.Infinite); - } - - /// - /// 等待任务完成 - /// - public async ETTask WaitForFinish() - { - await Tasks[_index]; - Tasks[_index] = null; - _hasStart = false; - } - } - - /// - /// 全部ETTask,用于存等待的结果的 - /// - private static readonly List Tasks = new List(10); - /// /// Delay for delay ms /// /// /// - public static async ETTask Delay(int delayInMs) + public static async Task Delay(int delayInMs) { - //当前线程的同步上下文 - SynchronizationContext cur = SynchronizationContext.Current; - //获取任务 - TimerWorker worker = null; - //先看有没有缓存过 - if (Timers.TryGetValue(delayInMs, out var timers)) - { - //有的话有没有空的 - if (timers.Count > 0) - { - //取 - worker = timers.Pop(); - } - } - //创建 - else - { - Timers[delayInMs] = new Stack(10); - } - - if (worker == null) - { - worker = new TimerWorker(delayInMs, cur); - } - - //开始 - worker.Start(cur); - //等 - await worker.WaitForFinish(); - //存 - Timers[delayInMs].Push(worker); + //TODO 待重做 + await Task.Delay(delayInMs); } } } \ No newline at end of file diff --git a/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.dll b/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.dll index 664d5f5c89386dfb63bf98a40fc2c665c008d949..528f9f4f31aaead5fccacaa3f16a973e74d1175a 100644 GIT binary patch delta 25151 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
%?Jv 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 Nxz>np#cl0u{|Adl5A^^5 diff --git a/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.pdb b/UnityProject/Assets/HotUpdateResources/Dll/Hidden~/HotUpdateScripts.pdb index 44b61734f8d3e81e6839f2faa745a4d0da6ed5c9..66c05d4467d0286235baa11a413ebd63908feb14 100644 GIT binary patch delta 8362 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 YqDyfb{D*+DYu6I1)!cPxBp#~&2ZOd6A^-pY delta 8422 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