#profiler/taskmanager
1 messages · Page 1 of 1 (latest)
unfortunately @mental tapir i had to scrap your code, i had ended up copying dtree, modifying it to be more efficient with bulk loads, including lazy loads etc. it'll only load the root node until you try to expand it, and a few other optimisations, pretty much loads instantly now instead of taking 9s to populate
way better
but still credit you for the original spark/idea
thank you
just realised that my image didnt post as a gif

idk it was just a random thought I had. this addon will be extremely powerful and could break addons easily, so it's just an option for addon devs (i.e anticheats) to put some safeguarding against brainlets
Like I can understand locking read/write behind a global permission check so you can let admins profile without them touching stuff
it works on a "restrict" permission, so everything can be read/write/delete (usergroup perms to do later on as additional one) it doesnt effect anything unless an addon dev wants to specify "hey pls dont mess with this"
But I don't see why you'd let addons lock stuff out when this seems like the kind of tool you would want full access with regardless of what the addon thinks about it
It feels more like a dev tool and I wouldn't want my dev tool listening to something like VJBase going "No don't touch me"
valid point tbh. it was a small edition that ill probably scrap, ty for input
I actually made something like that
Different question, how do you see writing working? Just a text field you put valid lua in and it writes to the key?
every node has its global path tracked - so i can essentially just _G[path] = value
for functions i might add a nice editor and grab the current source from the debug.getinfo
E.g. CompileLua("return ".. yourInputHere)
Also for hooks, might be useful to have a specific 'suspend' option that stores the function and hook.Removes it
this is very much what i am going for!
great idea, will add to todo list
(Or stubs it out for easier tracking, e.g. local isSuspended = hookCallback == suspendStub)
2 years later rubat disabled a lot of jit function which were used by me
basically that's kinda dead now
also could add timers & suspend/resume for those too
i dont think ill go into much debug/jit info, mostly just surface level normal profiler stuff
it was meant to be a profiler that lets you specify things in specific, because most profilers just do everything or a single thing
Is there even a way of getting active timers? Or are you thinking of detouring creation?
welp, to get a list of loaded lua files ive had to detour include - so if there isnt a way, yeah
I can see that being a bit of a pain though considering the real-time nature of timers
Gonna have to either update live or handle expired timers
dunno, will fiddle around and see what works.
Oh that's nice
(Red timers are ones that are created but have been destroyed)
yeah basically. they're there just for reference - i just added an option to remove the reference tho. probably should start working on more of the core functionality than these things lol
I've been confused at the purpose of this, navigating _G seems pointless to me, but seeing timers/hooks/net in this was actually seems useful
Especially if you can view server
👍
There are plenty of times where I've been working on code and ended up navigating my own global table just to see what was going on with regards to stored data
Though I do wonder if there is some merit in instead of it being a fixed _G browser it accepting any table with _G being used as the default
Just giving the top level node a rightclick option that opens a text prompt and does a CompileString setup where the return value is used instead
I just inspect with my Lua executor 
I mean so do I, but I could easily see myself using this instead if it supported that
So I can just type a thing once and have the entire table there instead of having to either PrintTable the whole thing or manually traverse it
At the moment, theres not much ive done, so at the moment it is just visual _G. Atm its just client, but server will come - i plan on adding profiling, similar to fprofiler and such for function nodes, possibly comparison etc. I havent really layed out the project fully just have general ideas and im just going at it as it comes
Tl:dr; its main function will be profiling, but will have some neat additions
Even as a visual _G though its helped me find globals in my gamemode that ive accidentally defined
clientside only?
did you sort listeners properly? (in the same order as hook lib calls them)
highlight listener nodes that return something. (to make it easy to track which listener is blocking call of following)
at the moment, its clientside just to get the functionality nailed, then its just a matter of porting to SV.
hooks is just nicely formatted hook.GetTable(), but given im detouring a lot of things ill probably detour hook.add - that's assuming my understanding is the order that it's added to the event is the order it runs. i have a lot to learn!
dont detour hook.Add, it may kill custom hook libs compat
any other ideas on determining the order of the hooks then?