1
0
mirror of http://mpg123.de/trunk/.git synced 2025-07-31 13:24:22 +03:00

Perl script to benchmark each of mpg123's CPU optimisations

git-svn-id: svn://scm.orgis.org/mpg123/trunk@700 35dc7657-300d-0410-a2e5-dc2837fedb53
This commit is contained in:
njh
2007-06-04 14:10:29 +00:00
parent aecb139e7b
commit c52af6a4bb

43
scripts/benchmark-cpu.pl Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/perl
#
# benchmark-cpu.pl: benchmark CPU optimisations of mpg123
#
# written by Nicholas J Humfrey <njh@aelius.com>, placed in the public domain
#
use strict;
use Time::HiRes qw/time/;
my $MPG123_CMD = '../src/mpg123';
my $TEST_FILE = $ARGV[0];
die "Please specify a test MP3 file to decode" if (scalar(@ARGV) < 1);
die "mpg123 command does not exist" unless (-e $MPG123_CMD);
die "mpg123 command is not executable" unless (-x $MPG123_CMD);
die "test MP3 file does not exist" unless (-e $TEST_FILE);
# Force unbuffed output on STDOUT
$|=1;
# Check the CPUs available
my $cpulist = `$MPG123_CMD --list-cpu`;
chomp( $cpulist );
die "Failed to get list of available CPU optimisations" unless ($cpulist =~ /^CPU options: /);
my @cpus = split( / /, substr( $cpulist, 13 ) );
printf("Found %d CPU optimisations to test...\n\n", scalar(@cpus) );
foreach my $cpu (@cpus) {
print "Checking speed of $cpu optimisation: ";
my $start_time = time();
system( $MPG123_CMD, '-q', '--cpu', $cpu, '-t', $TEST_FILE );
my $end_time = time();
printf("%4.4f seconds\n", $end_time - $start_time );
}
print "\n";