Windows > Third Party Plug-ins, Programs, and Skins

ZELDA v1.0 released (Expression Language editor)

<< < (28/45) > >>

Doof:
Have I said lately how much I love this tool? I seriously love this tool.

I do have one minor "bug" report, though: The FieldQuery help is redirecting to an Interact thread, but the function is in the wiki.

And one semi-major feature request? I was just contemplating writing this myself but thought I'd toss it your way to see if it's something that would fit better into Zelda, since you already have all of the building blocks in place already.

So the idea was a library performance analyzer. It would read in all of MC's user-defined fields, and for each field it would load in the values for every file in the library and record the amount of time it took MC's API to perform the task. Once it's completed this for every user-defined field in the database it presents a report that lists them all alongside their time. It would take some time to run, for sure, but it would help find problematic expression fields that are having the heaviest impact on MC's performance.

The idea really came from Zelda, since it already reports on the timing of individual expressions on a per-file basis. I was just hoping to take that capability and use it to get a birds-eye view of the entire library to see which expressions might be causing MC to periodically become temporarily unresponsive.

Thoughts? Even if it's not something you're interested in adding to Zelda, given your experience in this area, do you think the idea is feasible and worth pursuing?

zybex:
Thanks for the love  ;D

Funny, I thought I had published the updated wiki links, apparently not. I'll review the list of functions and add a few new ones, then I'll publish an update.

Regarding your idea for a performance analyzer... it's feasible. You can already measure a given field by simply writing it on the left side, eg. "[tooltip]", and then see the API time for each file in the Playlist tab on the right side. Doing the same for all fields... what about simply adding a similar "API" timing column to the "Insert Field" button? It already fetches the value of each field for the current file, so it would be trivial to add the timing there.

A full matrix of "all fields" vs "all files" is a bit cumbersome, I think.

Doof:
Ah, the idea wasn't to show a matrix of all fields and files. Sorry I wasn't clear. It would just be a two-column table showing field name and average response time.

So, for example, if I have a field that is constantly causing MC to go semi-unresponsive this would help locate that field by allowing you to compare the impact of that field against that of other fields. Currently, the file list shows the API response time of a single expression run against a single file. The idea is to get a report of the average impact of all fields, using some subset of the total library as a dataset, so that comparisons could be run between all user-defined fields to find the heaviest hitters.

Using that information, a user could sort the output by response time and find the expression fields that are really hammering on MC and causing potential performance issues.  I assumed it won't make sense to bother with default fields since a user has no control over those.

I think we're on the same track there with what you're suggesting about the Add Field window. The only difference would be that this would do the same for the entire list and present the average response time instead of single-file response time.

zybex:
Published v1.40:
- Add SetField and ListFilter functions
- Add missing wiki links
- Refresh Playlist tab only when it's the current tab
- Refresh only values of visible expressions on Playlist tab

The performance analyzer goes into the TODO. I checked it today, and MC's API doesn't provide any info about a field type - so I have no way to select only the user-created fields. This means the analyzer would need to list all fields, or provide a way for you to select which fields you want to analyze.

Doof:

--- Quote from: zybex on September 26, 2021, 09:32:50 am ---The performance analyzer goes into the TODO. I checked it today, and MC's API doesn't provide any info about a field type - so I have no way to select only the user-created fields. This means the analyzer would need to list all fields, or provide a way for you to select which fields you want to analyze.

--- End quote ---

Oh, bummer. Another option would be to maintain an internal list of stock fields and then filter those out? But I'm happy to hear the idea has merit and is under consideration!

Confirmed the wiki link for FieldQuery is working now! Thanks!

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version