杨必赞
杨必赞
后续可以考虑升级2.0. 2.0后的版本在github action上自带stripped之前的so https://github.com/Tencent/puerts/actions/runs/5088577010
是TSLoader用于编译的虚拟机报的错。 打开之后的后续使用正常嘛?
> @chexiongsheng 感谢您之前的回复。我明白要保证无引用对象的释放,需要进行一次完整的垃圾回收(GC)周期,由于一次完整的GC开销很大,所以它会被拆分为多个阶段,并根据当前应用的内存状况来执行。这意味着无引用的对象在内存中保留一段时间是正常的。 > > 然而,我注意到了一个进一步的问题,即即使在调用垃圾回收器(GC)多次和经过了大量的时间后,实例的最小计数并不会减少。 > > 以下是我用TestClass观察到的事件顺序: > > 我将TestClass分配给了a五次,这导致实例计数为5(根据Unity的内存分析器)。 调用GC后,实例计数减少到1。 TestClass被分配给a又三次,使实例计数达到4。 再次调用GC,实例计数减少到2。 这种模式持续,每次TestClass被分配和每次GC被调用时,实例计数都会波动。然而,即使在等待超过一个小时的时间(期间TestClass可能被分配很多次,并且频繁地调用GC)后,实例的最小计数(即GC调用后的实例计数)只会增加或保持不变。 > > 我发现,一旦最小实例计数增加,它就不会减少 - 它只会增加或保持不变。请问这种行为是否符合垃圾收集器的正常运作预期,或者这可能表明存在内存管理问题? > > 谢谢您的持续协助。 Thank you for your previous response....
https://github.com/zombieyang/puerts-ts-loader/blob/main/upm/Runtime/NodeModuleLoader/Typescripts/nodemodule-loader/resolve.mjs 从node.js源码里抠出来的cjs逻辑
雷电3(32bit) android5 也不行
``` void Start() { jsEnv = new JsEnv(); jsEnv.Eval(@" console.log(CS.PuertsTest.JsCallCs.v4_1) console.log(CS.PuertsTest.JsCallCs.v4_2) "); } public static UnityEngine.Vector4? v4_2 = null; public static UnityEngine.Vector4? v4_1 = new UnityEngine.Vector4(1, 2, 3, 4); ```...
wrapper中产生了一次装箱,待优化
> 这样处理起来感觉超麻烦的啊, 假定它是这样的嵌套类型呢: > > ```ts > class ClassB { > public static mthod1(): System.Collections.Generic.List$1; > public static mthod2(): System.Array$1; > } > ``` 也能做到吧。 这个方案只是在“有子类继承它时,让子类的类型声明可用”,没有解决直接用这个父类的问题,如果是继承的时候,你这个case应该也能跑的? 这是内部一个项目组的办法。
有一个可能比较完美的解决方案。但是与之前用法不同的。 比如对于Singleton,换成如下实现方式(当伪代码看): ``` function Singleton(typeT: T) { if (!this == global) { throw new Error('Singleton is a genericTypeDefinition and should call as Singleton(System.Type) first'); } return class Singleton$T extends System.Object...
现在dts里genericDefinition的声明是类似`List$1`这样的,`List`还可以用