#profiler/taskmanager

1 messages · Page 1 of 1 (latest)

mellow root
#

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

mental tapir
#

way better

mellow root
#

but still credit you for the original spark/idea

mental tapir
#

thank you

mellow root
#

just realised that my image didnt post as a gif

mental tapir
steel hollow
#

That's sick

#

Though question, why go for read/write/delete permissions?

mellow root
steel hollow
#

Like I can understand locking read/write behind a global permission check so you can let admins profile without them touching stuff

mellow root
#

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"

steel hollow
#

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"

mellow root
#

valid point tbh. it was a small edition that ill probably scrap, ty for input

visual raft
#

I actually made something like that

steel hollow
#

Different question, how do you see writing working? Just a text field you put valid lua in and it writes to the key?

mellow root
#

for functions i might add a nice editor and grab the current source from the debug.getinfo

steel hollow
#

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

mellow root
mellow root
steel hollow
#

(Or stubs it out for easier tracking, e.g. local isSuspended = hookCallback == suspendStub)

visual raft
#

basically that's kinda dead now

mellow root
#

also could add timers & suspend/resume for those too

mellow root
#

it was meant to be a profiler that lets you specify things in specific, because most profilers just do everything or a single thing

steel hollow
#

Is there even a way of getting active timers? Or are you thinking of detouring creation?

mellow root
#

welp, to get a list of loaded lua files ive had to detour include - so if there isnt a way, yeah

steel hollow
#

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

mellow root
#

dunno, will fiddle around and see what works.

steel hollow
#

Oh that's nice

mellow root
#

(Red timers are ones that are created but have been destroyed)

mental tapir
#

destroyed or ended

#

or both

mellow root
#

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

terse sentinel
#

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

#

👍

steel hollow
#

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

terse sentinel
steel hollow
#

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

mellow root
# terse sentinel I've been confused at the purpose of this, navigating _G seems pointless to me, ...

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

upbeat tapir
#

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)

mellow root
upbeat tapir
mellow root
steel hollow
#

Use the same method the hook lib uses to traverse the hook table

#

... which is just pairs