View Full Version : AVSMeter 3.0.9.0
Pages :
[
1]
2
3
4
5
6
7
8
9
Groucho2004
11th August 2017, 11:57
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 and working 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.
Screen shots:
https://i.postimg.cc/SK1Mw062/avsmeter.png
https://i.postimg.cc/9QJR73N8/avsinfo.png
Command line usage:
AVSMeter script.avs [switches] or AVSMeter -avsinfo [switches]
Switches:
-avsinfo Displays extended Avisynth info
-info [-i] Displays clip info
-log [-l] Creates log file
-csv Creates csv file
-gpu Displays GPU/VPU usage (requires GPU-Z)
-range=first,last Sets frame range
-timelimit=n Sets time limit (seconds)
-hp Sets process priority to high
-o Omits script pre-scanning
-lf Adds internal/external functions to the avsinfo*.log file
-p Pauses the program at the end and returns after pressing a key.
Note:
For normal operation, i.e. testing the speed of a script, the "-o" switch should not be used,
otherwise the accuracy of the FPS/TPF measurements will be reduced, particularly for fast scripts.
For all features to work properly, run this program with administrative user rights.
System requirements:
Avisynth 2.6x, Avisynth+
Recent changes:
v3.0.9.0
- Updated libcpuid (Intel Rocket Lake, AMD Ryzen Milan)
Download (http://www.mediafire.com/folder/x6f7yqjufdg7c/Groucho's_Avisynth_Stuff)
GPU-Z (https://www.techpowerup.com/download/gpu-z/) (needed when using the "-gpu" switch)
Video tutorial by Andrew Swan (https://www.youtube.com/watch?v=RxXP0oNJh4Q)
lansing
11th August 2017, 13:35
Where are all the posts?
Groucho2004
11th August 2017, 13:39
Where are all the posts?
I deleted the old thread a while ago. The old posts are not really relevant any more since so many things were changed/fixed.
Groucho2004
12th August 2017, 15:51
v2.6.1
The list of plugin functions in the log file (-avsinfo -log) now points out duplicates (functions with the same name in different DLLs) by adding "[DUPLICATE]" to the function name(s)
StainlessS
13th August 2017, 04:23
v2.6.1
The list of plugin functions in the log file (-avsinfo -log) now points out duplicates (functions with the same name in different DLLs) by adding "[DUPLICATE]" to the function name(s)
Very handy, ta very much.
Groucho2004
16th August 2017, 21:24
v2.6.2
Fixed a problem caused by the 50 plugin limit in "classic" Avisynth
VS_Fan
17th August 2017, 07:53
It is flagging with the [DUPLICATE] suffix only one of the instances of duplicated functions, both in 32 and 64 bits:
32 bits: deblock_Deblock [DUPLICATE] _vs_ DGDecode_Deblock (Not flagged)
64 bits: deblock_Deblock (Not flagged) _vs_ MPEG2DecPlus64_Deblock [DUPLICATE]
It is useful this way, but could be better/clearer flagging all of the duplicated instances.
StainlessS
17th August 2017, 09:19
It is flagging with the [DUPLICATE] suffix only one of the instances of duplicated functions, both in 32 and 64 bits:
32 bits: deblock_Deblock [DUPLICATE] _vs_ DGDecode_Deblock (Not flagged)
64 bits: deblock_Deblock (Not flagged) _vs_ MPEG2DecPlus64_Deblock [DUPLICATE]
It is useful this way, but could be better/clearer flagging all of the duplicated instances.
Fair point, but perhaps DUPLICATED could be better description where flagging all instances.
Groucho2004
17th August 2017, 09:30
The duplicate detection ignores the plugin (file) name, so it just checks the "short" function names which is the whole point of this feature.
Groucho2004
9th September 2017, 11:18
v2.6.3
Fixed: Updating very old ini files didn't work
Removed report of duplicate plugin functions temporarily
Some minor fixes/cosmetics
Groucho2004
10th September 2017, 09:17
v2.6.4
New/updated code for reporting duplicate plugin functions
Reporting of duplicate plugin functions is now integrated in the "Plugin error/warnings" section and lists all plugins that export functions with the same name.
Example:
[Plugin errors/warnings]
___________________________________________________________________________________________________
Duplicate plugin function "nnedi3":
e:\apps\videotools\avisynthrepository\avsplus_x86\plugins\nnedi3.dll
e:\apps\videotools\avsplugins\autoload\nnedi3.dll
___________________________________________________________________________________________________
Duplicate plugin function "nnedi3_rpow2":
e:\apps\videotools\avisynthrepository\avsplus_x86\plugins\nnedi3.dll
e:\apps\videotools\avsplugins\autoload\nnedi3.dll
___________________________________________________________________________________________________
Cannot load file 'E:/Apps/VideoTools/AVSPlugins/AutoLoad/IBob.dll'. Platform returned code 126:
The specified module could not be found.
Dependencies that could not be loaded:
avisynth_c.dll
Note: C 2.0 Plugins are not supported by Avisynth+
___________________________________________________________________________________________________
Groucho2004
14th September 2017, 17:39
v2.6.5
Added hint for error 127 (proc not found / procedure could not be found)
Minor fixes/cosmetics
george84
20th September 2017, 10:22
C:\Users\Walter\Downloads\AVSMeter265>"AVSMeter.exe" C:\Users\Walter\Documents\SMIL\BSG23\testsuite\OLED\ColorCheck\PhotoDirList2020Plus.xml.smil.avs -log
AVSMeter 2.6.5 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth+ 0.1 (r2508, MT, i386) (0.1.0.0)
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
Address: 0x6570A393
C:\Users\Walter\Downloads\AVSMeter265>SHIFT
C:\Users\Walter\Downloads\AVSMeter265>"AVSMeter.exe" -avsinfo
AVSMeter 2.6.5 (x86) - Copyright (c) 2012-2017, Groucho2004
VersionString: AviSynth+ 0.1 (r2508, MT, i386)
VersionNumber: 2.60
File / Product version: 0.1.0.0 / 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2017-06-29, 09:00:22 (UTC)
PluginDir2_5 (HKLM, x86): C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins
PluginDir+ (HKLM, x86): C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins
[CPP 2.6 / 32 Bit Plugins]
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\ConvertStacked.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\DirectShowSource.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\ImageSeq.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\TimeStretch.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\VDubFilter.dll
C:\Users\Walter\Downloads\AVSMeter265>SHIFT
Above violation occurs on a script of 1400 lines. The script displays well in AvsPmod which gives Video Information correctly (CS = RGB24)
Problem is not important for me.
Groucho2004
20th September 2017, 10:40
Above violation occurs on a script of 1400 lines. The script displays well in AvsPmod which gives Video Information correctly (CS = RGB24)What happens when you open/run the script in VirtualDub?
george84
20th September 2017, 11:12
Checked with 2 different versions of Vdub. Both crash in shibach.dll.
See attachments
Groucho2004
20th September 2017, 18:09
Checked with 2 different versions of Vdub. Both crash in shibach.dll.So, it's not just AVSMeter. Can you post the full script and possibly a short clip so we can reproduce this?
george84
20th September 2017, 21:37
Will take some time.
george84
26th September 2017, 10:07
The crash doesn't occur when I remove following code from script.
SMILrootlayout = Overlay(SMILrootlayout, SMILregion1, x = SMILregion1_left, y = SMILregion1_top, pc_range = false)
left and top are 0.
SMILregion1 is a BlankClip of length=0.
Groucho2004
26th September 2017, 18:13
The crash doesn't occur when I remove following code from script.
A single line from your script doesn't help tracking down the problem. Post it in the AVS+ thread since it obviously isn't a problem with AVSMeter.
george84
26th September 2017, 18:21
A single line from your script doesn't help tracking down the problem. Post it in the AVS+ thread since it obviously isn't a problem with AVSMeter.
As I said in the beginning everything works fine in AVS+. Only AVSMeter and VDub Crash. AVSPmod does also good preview.
I just wanted to help you track the crash in AVSMeter.
As I also said it is not all important for me. So let it die.
Groucho2004
26th September 2017, 22:10
As I said in the beginning everything works fine in AVS+. Only AVSMeter and VDub Crash. AVSPmod does also good preview.
I just wanted to help you track the crash in AVSMeter.
As I also said it is not all important for me. So let it die.
I think there is some misunderstanding here. The exception occured in shibatch.dll, not VDub or AVSMeter:
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
Address: 0x6570A393
Just because Avspmod or its preview doesn't have the exception handling that is needed to catch those errors doesn't mean that there is no problem. You should check the output of that script thoroughly, audio and video.
Groucho2004
28th September 2017, 11:12
v2.6.6
Detailed external function enumeration and duplicate report are still not working properly, removed for now
Groucho2004
16th November 2017, 19:36
v2.6.7
Minor fixes, refactoring and cosmetics
Groucho2004
18th November 2017, 10:07
v2.6.8
Fixed a bug in plugin type enumeration (regression)
Groucho2004
1st December 2017, 10:58
v2.6.9
avsinfo: If the version info is missing in (auto-load) plugins/files, the UTC timestamp is printed instead
Simplified 'ESC' key handling
StainlessS
1st December 2017, 22:32
Thanxs, my hero, :)
Groucho2004
14th December 2017, 18:51
v2.7.0
Warnings and errors are reported in separate sections
Updated list of exception messages
Cosmetics
GMJCZP
14th December 2017, 19:55
Thanks. In this repository http://www.iol.ie/~schubert/gas/gas.html still remains the 2.69 version.
Groucho2004
14th December 2017, 19:58
Thanks. In this repository http://www.iol.ie/~schubert/gas/gas.html still remains the 2.69 version.Click refresh.
Music Fan
4th January 2018, 16:01
Hi,
where is the ini file located ?
I put AVSMeter.exe (x86) in C:\Program Files (x86)\AVSMeter, I opened an avs file with AVSMeter, I cancelled the process and the window disappeared.
To let the window opened, a setting could be changed in the ini that appeared after the first utilisation, but it doesn't appear anymore.
I didn't used AVSMeter for a while.
StainlessS
4th January 2018, 16:34
For me, ini file is created (after I deleted original) in the same directory as AvsMeter.
(I run AvsMeter from "C:\BIN" which has an entry in my %PATH%, and run from command prompt)
EDIT:AvsMeter v2.67.
Music Fan
4th January 2018, 16:42
For me, ini file is created (after I deleted original) in the same directory as AvsMeter.
It used to be the case too on my pc, but not anymore (v2.70). :confused:
StainlessS
4th January 2018, 16:54
EDIT: Updated to avsmeter v2.7
Same again for me, in C:\BIN\ directory.
Are you calling from Programs menu, or drag and drop ?
You could try root of C:\, or your equivalet to "Documents and Setting\UserName"
EDIT: Just seen this
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.
Note: If applicable, command line switches override INI settings.
Groucho2004
4th January 2018, 17:06
where is the ini file located ?
AVSMeter.ini is always created in the same directory as AVSMeter.exe (given that it has write privileges to that directory).
StainlessS
4th January 2018, 17:21
I cancelled the process
Maybe why.
Music Fan
4th January 2018, 17:55
(given that it has write privileges to that directory).
That was the problem : I ran AVSMeter.exe as administrator and the ini was created. But when I wanted to change the settings, it was refused (I don't know why, I am the administrator and only user of this pc).
Thus I put AVSMeter in C:\AVSMeter and now I can save the changes in the ini.
edit : But now I can't open avs files with AVSMeter with right click :confused:
I select AVSMeter.exe but it doesn't appear in the list of the programs that can open this type of files :scared:
I will try with send to.
Groucho2004
4th January 2018, 17:58
Maybe why.
Pretty much the first thing AVSMeter does is parsing the .ini file (or creating one if it does not exist). If it can't create it, an error message is displayed which of course is difficult to see if it's not run from an already open console.
Maybe I should set the "PauseBeforeExit" option to true by default...
lansing
4th January 2018, 17:59
That was the problem : I ran AVSMeter.exe as administrator and the ini was created. But when I wanted to change the settings, it was refused (I don't know why, I am the administrator and only user of this pc).
Thus I put AVSMeter in C:\AVSMeter and now I can save the changes in the ini.
Text files inside C:\program files\ will need administrator-right-opened textfile editor in order to edit it.
Groucho2004
16th January 2018, 12:16
v2.7.1
When using the switch "-avsinfo" in combination with "-log", a "Save as..." dialog will open enabling the user to save the log file
Minor fixes and refactoring
Cosmetics
Some users seemed to have trouble finding the log file created with the switches "-avsinfo -log", mainly when not operating directly from the console. The "Save as..." prompt should cure this.
Music Fan
16th January 2018, 19:56
Great, thanks.
StainlessS
18th January 2018, 00:57
Dont know if you want to investigate this,
Access Violation in AvsMeter v2.7, with only LoadPluginEx2.dll in plugins (AvsMeter -avsInfo).
2nd linked dll here:- http://avisynth.nl/index.php/LoadOldPlugins
dll is UPX'ed, un-Upx'ed dll same result.
Maybe just a bad dll (about 30kb when UPX'ed, about 90kb de-Upx'ed, LoadPluginEx.dll's from 2003 and 2008 both about 60kb).
EDIT: On second thoughts, you might want to ignore this, even caused Access violation in VDub when dll in plugins folder
(no other plugs, and no script, just startup VDFilterMod and close again, crash).
https://s20.postimg.org/8ewuhofel/accessviolation.jpg (https://postimages.org/)
Perhaps that dll should be removed from Wiki, unless anybody can get it to do something useful, without crashing.
EDIT:
Despite this line on wiki
use as a last resort! I don't know exactly which package it came out of, but it works; I believe it requires v7 of the MS C runtime library (msvcr70.dll)
It dont seem to work and does not require any runtime.
https://s20.postimg.org/e3358umel/nodeps.jpg (https://postimages.org/)
EDIT: That was UPX'ed version in dependency walker, so UPX.exe stuff dont need runtimes either, I presume. [EDIT: No, shows uncompressed size]
EDIT: Same with Un-UPX'ed, no deps.
EDIT: Link time stamp in dep walker says 21 Jan 2003, which is about 10 months before the earliest 2003 LoadPluginEx.dll that I've found. (3 Nov 2003)
EDIT: Strangely, with script
# No Crash in MPC-HC or VDubFilterMod
LoadPlugin("D:\LoadPluginEx2.dll")
Return Colorbars
# No Crash in MPC-HC or VDubFilterMod
LoadPlugin("D:\LoadPluginEx2.dll")
LoadPlugin("D:\Dustv5.dll") # EDIT: Avisynth v2.0 CPP plugin.
Colorbars
Return PixieDust(limit=5,output="RGB32")
EDIT: I used to like PixieDust. EDIT: No I didn't, it was the Peach or PeachSmoother thing I liked, with all of that there orange smoke stuff.
Groucho2004
22nd January 2018, 22:06
v2.7.1
When using the switch "-avsinfo" in combination with "-log", a "Save as..." dialog will open enabling the user to save the log file
Minor fixes and refactoring
Cosmetics
Some users seemed to have trouble finding the log file created with the switches "-avsinfo -log", mainly when not operating directly from the console. The "Save as..." prompt should cure this.
I'm thinking about using "Save as..." dialogs for the other log/csv file options. Any objections?
Sparktank
23rd January 2018, 02:30
I wouldn't be apposed to that.
Sometimes I just create generic names for scripts to test out new things and dont name them adequately.
Selur
12th February 2018, 05:50
@Groucho2004:
Calling: AVSMeter.exe -range=0,200 -timelimit=60 "H:\Temp\encodingTempSynthSkript_05_34_45_4010.avs"
on
SetMemoryMax(1536)
SetMTMode(5,16) # changing MT mode
LoadCPlugin("G:\Hybrid\32bit\AVISYN~1\ffms2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\flash3kyuu_deband.dll")
# loading source: C:\Users\Selur\Desktop\Dragonball.Z.-.001.-.1080p.BluRay.x264.DHD (1)-001.mkv
# input luminance scale tv
FFVideoSource("C:\Users\Selur\Desktop\DRAGON~1.MKV",cachefile="H:\Temp\05_34_45_4010.ffindex")
# current resolution: 1920x1080
# debanding
SetMTMode(2) # changing MT mode
f3kdb(dither_algo=3,grainY=1,grainC=1,dynamic_grain=true,Y=64,Cb=40,Cr=40)
# scaling
Spline36Resize(1280,720)
distributor()
return last
AVSMeter get's stuck at:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Pre-scanning script (F117 / T4.88)
AVSMeter.exe -avsinfo
properly returns:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
VersionString: AviSynth 2.60, build:Feb 20 2015 [03:16:45]
VersionNumber: 2.60
File / Product version: 2.6.0.5 / 2.6.0.5
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: G:\Hybrid\32bit\avisynth.dll
Avisynth.dll time stamp: 2015-02-20, 00:18:42 (UTC)
[Plugin warnings]
_________________________________________________________________________________________________________________________________________________________________________________________________________________
No plugin directory references found in the registry.
Plugin auto-loading disabled.
_________________________________________________________________________________________________________________________________________________________________________________________________________________
AVSMeter.exe -info "H:\Temp\encodingTempSynthSkript_05_34_45_4010.avs"
properly returns:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Number of frames: 7289
Length (hh:mm:ss.ms): 00:05:04.012
Frame width: 1280
Frame height: 720
Framerate: 23.976 (24000/1001)
Colorspace: i420
Active MT Mode: 2
AVSMeter.exe "H:\Temp\encodingTempSynthSkript_05_34_45_4010.avs"
also get's stuck:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Pre-scanning script (F123 / T4.83)
Cu Selur
Groucho2004
12th February 2018, 10:52
Selur,
You're running out of memory. If you remove the "Distributor()" call it will work. "Distributor()" is called in AVSMeter so you're calling it twice which increases the number of threads from ~50 to ~250 (checked with task manager) and therefore increases memory usage significantly.
Also, check the manual (http://www.iol.ie/~schubert/AVSMeter.html) ("InvokeDistributor" ini setting).
However, it's odd that Avisynth doesn't throw an out of memory error. I'll look into it.
Selur
12th February 2018, 18:00
You are right, without the 'distributor()' call it does not freeze. :)
Manual site is blocked by MalwareBytes. ;)
Groucho2004
12th February 2018, 18:20
Manual site is blocked by MalwareBytes. ;)First time I hear that. The manual is also included in the download.
Groucho2004
14th February 2018, 17:25
v2.7.2
Added new switch "-c". This allows in combination with "-avsinfo" to specify a custom plugin directory.
"Save as..." dialog for all log/csv files when using "-log" and/or "-csv" switches
Updated AVS+ headers
Cosmetics
Groucho2004
15th February 2018, 11:07
v2.7.3
Fixed a bug in the plugin enumeration
Yanak
21st February 2018, 11:04
Hello Groucho2004,
updated to the last version and now i see that the "LogFileDateTimeSuffix" & "LogDirectory" options seems gone and we have the save as dialog when using logs like explained 2 posts above.
I was always using a small batch to loop the tests 3 or 5 times to get more accurate results, but now with this change i can't do this anymore, after the first run i need to save manually the file and can't do like before, launching my batch executing the tests looped 3 times on various source files, just fire and forget about it, especially while it could run for a few hours.
Beside going back to 2.7.1 version is there a way to get this working like before, getting log files generated automatically without user interaction needed to save them please ?
btw what is the option "AutoCompleteExtension=0" ? Unless i am missing it there is nothing about it the help file
Also is there a way add an option directly in the program to set the cores affinity to run the program on ?
Most of the times to get more accurate results when running single threaded tests ( or multi threaded ones but using only 4 threads on my 8 available ) i use this command to exclude the core 0 & 1 of the CPU ( those can be used by some other stuff running in the background or by windows and unless it's a tests needing to run on all threads it's better to not run anything on those for accurate results in most benchmarks perfs tests ), this is the cmd line i use :
start /affinity 0xfc avsmeter64 test.avs
0xfc excludes core 0 & 1, 0xfe excludes only core 0 etc, to get the hex value for the cores needed for a 8 cores/ threads CPU you get this :
7 6 5 4 3 2 1 0 < this is the cores , starting by last core and ending by core 0
Then i use a binary scheme , on/off for the cores , example i want all ON beside core 0 & 1, so in binary i end up with this :
1 1 1 1 1 1 0 0 < ON/OFF Binary
gives 11111100 , converted from binary to hex it gives the 0xfc hex parameter
What I'd like to see is an option in the AVSMeter.ini where i could set the Hex value i need to set the affinity of the cores directly there, like "CoreAffinity=0xfc" or "CoreAffinity=0" to not use it / disable it.
Directly inside the program instead of calling it with the command line listed above, not sure if possible or hard to implement or even if you will find this interesting, but who knows, maybe it is easy and possible.
And maybe, if there is a way to get the log created automatically like before, another useful option will be to have the program itself managing how many runs / loops we want to do for a test, again a parameter in the ini file like "LoopTest=3" or "=0" to disable it.
Maybe i'm the only one interested by those possible options and you will find this silly but i take the risk to ask :p
Thanks a lot :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.