AVSMeter

AVSMeter is a CLI (command line interface) tool which measures the speed/efficiency of Avisynth scripts and checks if Avisynth and its plugin sub-system are set up correctly.
Features:

- "Running" scripts with virtually no overhead, displaying clip info, CPU/GPU usage / memory usage and the minimum, maximum and average frames processed per second. Measuring how fast Avisynth can serve frames to a client application (x264, VirtualDub) and establishing CPU/GPU/memory usage helps with optimizing scripts and tracking down crashes, slowdowns and bottlenecks.
- Performing a thorough test of the Avisynth installation and associated plugins, checking if external dependencies are installed, etc.

Usage: AVSMeter script.avs [switches]
Switches
-avsinfo Display extended Avisynth info (1)
-info [-i] Display clip info
-log [-l] Create log fil e (2)
-csv Create csv file (3)
-gpu Monitor GPU/VPU usage (4)
-range=first,last Set frame range (5)
-timelimit=n Set time limit (seconds) (6)
-priority=n Set process priority (1:low, 2:normal, 3:high)
-simple [-s] Simple mode (w/o statistics) (7)
(1) Displays extended info about the installed Avisynth version and the plugin sub-system. If a custom avisynth.dll is specified in the ini file, info about that file will be displayed. The "-avsinfo" switch can be combined with "-log" in order to write the info to a log file ("avsinfo.log") which is created in the current (working) directory unless the INI option "LogDirectory" points to another (valid) directory. The log file contains additional info about OS/hardware, a list of DLL dependencies for avisynth.dll and all auto-load plugins and a list of internal/external Avisynth functions.
(`2`) Creates a log file with various details about the installed Avisynth version, clip info, runtime results, a copy of the script and a performance data table with the measured details about each frame/frame interval. The log file is created in the same directory as the script unless the INI option "LogDirectory" points to another (valid) directory.
Note: The numbering of the frames in the performance data section is not zero-based, i.e. the first frame is 1, not 0.
(`3`) Creates a CSV file containing the performance data formatted as comma-separated values for direct import in Excel or a similar spread sheet program (OpenOffice, LibreOffice). The CSV file is created in the same directory as the script unless the INI option "LogDirectory" points to another (valid) directory.
Note: The numbering of the frames in the .csv file is not zero-based, i.e. the first frame is 1, not 0.
(`4`) Enables display of the GPU/VPU usage which of course is only useful if a filter that uses the GPU is in the chain. AVSMeter uses GPU-Z to access the graphics card sensors through a shared memory space. GPU-Z has to be running (the window can be minimized to the system tray) before running AVSMeter.
(`5`) Specify the range of frames to be processed. For example, "-range=1500,1999" processes 500 frames starting at frame 1500. Without "-range" AVSMeter processes all frames of the script.
(`6`) Specify a time limit (in seconds) after which the program stops reading frames and terminates.
(`7`) "Simple mode" just runs the script without gathering any runtime/performance data. This is useful if AVSMeter is used with a script where the performance info is irrelevant, for example audio conversion.
Note: If applicable, command line switches override INI settings.
INI file settings
AVSMeter checks if a settings file ("AVSMeter.ini") exists in the directory from where it is started. If not, it will be created with the default settings. The INI file supports additional settings, documentation can be found in the INI file itself.