Comments (13)
These codes were contributed by @wlgys8 , I think should optimize
from slua.
I have profiled, but didn't get similar output, I found gc alloc need 6MB and take 150ms on pc.
I have reviewed the code and modified a little for reduce gc alloc, after my modification, gc alloc need 345kb and take 26ms.
My modification had pushed.
btw, how did you test GC alloc and found them went up to 37mb?
from slua.
I just retested result as follows
without profiler
find all methods marked by [Lua3rdRegAttribute] cost :0.5860335
then I remove Lua3rdDLL.open(L)
The problem of Lua3rdDLL.open(L) is the function actually doing nothing (to me because I don't have any 3rdDll to be imported). It should be able to disable and enable when needed.
BTW I am pretty new to Unity my conclusion might not very accurate, Thank.
from slua.
I added a flag to control whether switch on debug/open extlib/reg 3rddll or not, not need reg 3rddll as default for most user.
from slua.
Notice my capture, xxx (xxx is profile pair)only need 0.7M gc-alloc and take 56ms on pc(latest version), I think you should expand profile tree to scrutinize what's hot spot.
Profiler.BeginSample("xxxx");
Lua3rdDLL.open(L);
Profiler.EndSample();
from slua.
Thanks !
Expanding profile tree on just halted my shitty machine...
Profiler.BeginSample("xxxx");
Lua3rdDLL.open(L);
Profiler.EndSample();
I will give this a try.
from slua.
New test with Profiler.BeginSample defined
from slua.
Did you did some 3rd dll reg work?
from slua.
I get it, your assembly contains much functions, I had added a binding flat to reduce list of function that are returned by x.GetMethods
from slua.
Yes I bought quite a few plugins with dlls such as Json.Net for Unity.
from slua.
foreach(var assem in AppDomain.CurrentDomain.GetAssemblies()){
if(assem.GetName().Name == "Assembly-CSharp"){
assembly = assem;
}
}
break is needed when assembly is found I guess.
from slua.
I think so ,had fixed
from slua.
maybe auto search is not a good solution here?
ease use but time costing.
register 3rd DLL manually seems better?
from slua.
Related Issues (20)
- 加群
- 加群专用 HOT 3
- 用slua记载一个蓝图类报错
- Insecure Temporary File
- 加群 HOT 1
- 如何编译64位Lua5.3版本的slua HOT 3
- 1.6 升1.7后 android取UnityEngine.Time.deltaTime 取不到 是nil指
- slua clang 编译后 crash HOT 3
- 加群
- 加群
- 加群 HOT 1
- SLua的GetAlreadyDestroyedObjectNames
- 加群
- 加群
- .Net 6(Unity2021) EnableKeyword 的重载方法中增加了 in 关键字
- Unity2021.2, Unity2022.2 Lua桥生成错误
- 加群
- DllNotFoundException: Unable to load DLL 'slua'. Tried the load the following dynamic libraries HOT 1
- 加群
- 加群
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slua.