Показать сообщение отдельно

Измерение и сравнение скорости работы
  #2  
Старый 27.06.2007, 00:46
Thanat0z
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме:
5352530

Репутация: 2062


По умолчанию Измерение и сравнение скорости работы

Возьмем сборку JRT и внимательно посмотрим на содержимое. В папке run вы можете наблюдать много ехе файлов. Вы их уже могли видеть, если читали мою статью про того какой софт выбрать для брута хешей Так вот, сейчас еще раз посчитаем скорость работы их.

ЗЫ кстати в папке лежит два файлика
john.conf_default
john.conf
.
Тот что не default мой личный, пока что отложите его в сторону, он нам пригодится после


Для подсчета скорости нам понадобятся скрипты.
Первый скрипт мы назовем script_test_speed.pl:
Код:
#(c) Maxx
#!/usr/bin/perl
use strict;
my %result;

for my $john (sort <run\\john.*.exe>)
{
	next unless $john =~ /john\.(.+)\.exe/;
	my $arch = $1;
	
	print STDERR "testing $arch...\n";
	print "arch: $arch\n";
	system("$john -test");
}
как видите из кода это Perl , и скрипт будет запускать из папки run ехе'шники джона в режиме -test. Скрипт должен запускаться из главной папки джона, не из папки run:

Код:
26.06.2007  22:20    <DIR>          doc
26.06.2007  22:55    <DIR>          run
26.06.2007  22:52             1*062 script_parse_result.pl
26.06.2007  22:55               237 script_test_speed.pl
запускать будем как
Код:
perl script_test_speed.pl > result1.txt
После запустим второй скрипт script_parse_result.pl:
Код:
#(c) Maxx
#!/usr/bin/perl
use strict;
my @result;
undef $/;
my $text = <>;

for my $archset (split /arch:\s*/is, $text)
{
	next unless $archset =~ s/^(\S+)\s//s;
	my $arch = $1;

	for my $algset (split /Benchmarking:\s*/is, $archset)
	{
		next unless $algset =~ s/^(.+?)\s*[\(\[][^\n]+\n//s;
		my $alg = $1;
		
		for my $typeset (split /\n/, $algset)
		{
			if ($typeset =~ m/^([^\:]+):\s*(\d+(\w)?)/)
			{
				my ($type, $speed) = ($1, $2);
				$speed =~ s/K/000/;
				$speed =~ s/M/000000/;
			    push @result, [$alg, $type, $speed, $arch];
			}
		}
    }
}

my ($prevalg, $prevtype);
for (sort
	{
		my $r;
		return $r unless ($r = @{$a}[0] cmp @{$b}[0]) == 0;
		return $r unless ($r = @{$a}[1] cmp @{$b}[1]) == 0;
		return $r unless ($r = @{$b}[2] <=> @{$a}[2]) == 0;
		@{$a}[3] cmp @{$b}[3];
	}
	@result)
{
	my ($alg, $type, $speed, $arch) = @{$_};
	if ($prevalg ne $alg || $prevtype ne $type)
	{
		$prevalg  = $alg;
		$prevtype = $type;
		print "\n";
	}
    printf("%s (%s): %9d (%s)\n", $alg, $type, $speed, $arch);
}
запускать будем так
Код:
perl script_parse_result.pl < result1.txt > result2.txt
Получим в итоге результаты

Код:
BSDI DES (Many salts):     29120 (athlon-4)
BSDI DES (Many salts):     29120 (athlon-xp)
BSDI DES (Many salts):     29071 (athlon-tbird)
BSDI DES (Many salts):     29071 (k6-3)
BSDI DES (Many salts):     29071 (pentium-mmx)
BSDI DES (Many salts):     29068 (athlon)
BSDI DES (Many salts):     29068 (athlon-mp)
BSDI DES (Many salts):     29068 (i386)
BSDI DES (Many salts):     29068 (k6)
BSDI DES (Many salts):     29068 (pentium4)
BSDI DES (Many salts):     29020 (k6-2)
BSDI DES (Many salts):     29020 (pentium2)
BSDI DES (Many salts):     29020 (pentium3)
BSDI DES (Many salts):     29020 (pentiumpro)
BSDI DES (Many salts):     29016 (pentium)
BSDI DES (Many salts):     28971 (i486)
BSDI DES (Many salts):     28968 (i686)
BSDI DES (Many salts):     28920 (i586)

BSDI DES (Only one salt):     28822 (pentium2)
BSDI DES (Only one salt):     28768 (athlon-4)
BSDI DES (Only one salt):     28768 (athlon-mp)
BSDI DES (Only one salt):     28768 (athlon-xp)
BSDI DES (Only one salt):     28721 (athlon)
BSDI DES (Only one salt):     28721 (i686)
BSDI DES (Only one salt):     28721 (pentium)
BSDI DES (Only one salt):     28721 (pentium-mmx)
BSDI DES (Only one salt):     28721 (pentium4)
BSDI DES (Only one salt):     28673 (pentium3)
BSDI DES (Only one salt):     28673 (pentiumpro)
BSDI DES (Only one salt):     28670 (athlon-tbird)
BSDI DES (Only one salt):     28670 (i386)
BSDI DES (Only one salt):     28670 (k6)
BSDI DES (Only one salt):     28670 (k6-3)
BSDI DES (Only one salt):     28573 (k6-2)
BSDI DES (Only one salt):     28527 (i486)
BSDI DES (Only one salt):     28524 (i586)

FreeBSD MD5 (Raw):      5841 (i386)
FreeBSD MD5 (Raw):      5841 (k6)
FreeBSD MD5 (Raw):      5841 (k6-2)
FreeBSD MD5 (Raw):      5841 (k6-3)
FreeBSD MD5 (Raw):      5840 (i486)
FreeBSD MD5 (Raw):      5825 (pentium)
FreeBSD MD5 (Raw):      5808 (i586)
FreeBSD MD5 (Raw):      5793 (i686)
FreeBSD MD5 (Raw):      5793 (pentium-mmx)
FreeBSD MD5 (Raw):      5777 (athlon-mp)
FreeBSD MD5 (Raw):      5777 (athlon-tbird)
FreeBSD MD5 (Raw):      5776 (athlon-4)
FreeBSD MD5 (Raw):      5776 (pentium2)
FreeBSD MD5 (Raw):      5776 (pentium3)
FreeBSD MD5 (Raw):      5776 (pentiumpro)
FreeBSD MD5 (Raw):      5761 (athlon-xp)
FreeBSD MD5 (Raw):      5760 (athlon)
FreeBSD MD5 (Raw):      5760 (pentium4)

Kerberos AFS DES (Long):    745608 (athlon-4)
Kerberos AFS DES (Long):    743493 (athlon-mp)
Kerberos AFS DES (Long):    743493 (athlon-xp)
Kerberos AFS DES (Long):    731307 (pentium2)
Kerberos AFS DES (Long):    731307 (pentium3)
Kerberos AFS DES (Long):    729399 (athlon-tbird)
Kerberos AFS DES (Long):    729399 (i386)
Kerberos AFS DES (Long):    729399 (pentiumpro)
Kerberos AFS DES (Long):    727501 (athlon)
Kerberos AFS DES (Long):    727375 (i686)
Kerberos AFS DES (Long):    721618 (pentium4)
Kerberos AFS DES (Long):    719637 (pentium)
Kerberos AFS DES (Long):    717667 (pentium-mmx)
Kerberos AFS DES (Long):    713880 (i586)
Kerberos AFS DES (Long):    712062 (i486)
Kerberos AFS DES (Long):    712062 (k6)
Kerberos AFS DES (Long):    710133 (k6-3)
Kerberos AFS DES (Long):    708214 (k6-2)

Kerberos AFS DES (Short):    279586 (athlon-4)
Kerberos AFS DES (Short):    279586 (athlon-mp)
Kerberos AFS DES (Short):    279586 (athlon-xp)
Kerberos AFS DES (Short):    279586 (i386)
Kerberos AFS DES (Short):    279586 (i686)
Kerberos AFS DES (Short):    279028 (pentium2)
Kerberos AFS DES (Short):    278435 (athlon)
Kerberos AFS DES (Short):    278398 (athlon-tbird)
Kerberos AFS DES (Short):    278398 (k6)
Kerberos AFS DES (Short):    277844 (pentium4)
Kerberos AFS DES (Short):    277844 (pentiumpro)
Kerberos AFS DES (Short):    277293 (k6-2)
Kerberos AFS DES (Short):    277293 (pentium3)
Kerberos AFS DES (Short):    277257 (pentium)
Kerberos AFS DES (Short):    276708 (i486)
Kerberos AFS DES (Short):    276708 (k6-3)
Kerberos AFS DES (Short):    276708 (pentium-mmx)
Kerberos AFS DES (Short):    276125 (i586)

MySQL 3.23 (Raw):  17367000 (i386)
MySQL 3.23 (Raw):  17048000 (i486)
MySQL 3.23 (Raw):  17015000 (k6)
MySQL 3.23 (Raw):  16912000 (k6-2)
MySQL 3.23 (Raw):  16877000 (k6-3)
MySQL 3.23 (Raw):  15947000 (pentium4)
MySQL 3.23 (Raw):  15170000 (athlon)
MySQL 3.23 (Raw):  15170000 (athlon-tbird)
MySQL 3.23 (Raw):  14690000 (pentiumpro)
MySQL 3.23 (Raw):  14666000 (i686)
MySQL 3.23 (Raw):  14587000 (pentium3)
MySQL 3.23 (Raw):  14313000 (athlon-mp)
MySQL 3.23 (Raw):  14290000 (athlon-4)
MySQL 3.23 (Raw):  14242000 (athlon-xp)
MySQL 3.23 (Raw):  14242000 (pentium2)
MySQL 3.23 (Raw):  13707000 (pentium)
MySQL 3.23 (Raw):  13661000 (i586)
MySQL 3.23 (Raw):  13661000 (pentium-mmx)

NT LM DES (Raw):   8356000 (pentiumpro)
NT LM DES (Raw):   8339000 (i686)
NT LM DES (Raw):   8012000 (athlon-mp)
NT LM DES (Raw):   7998000 (athlon-tbird)
NT LM DES (Raw):   7983000 (athlon-xp)
NT LM DES (Raw):   7982000 (athlon)
NT LM DES (Raw):   7982000 (athlon-4)
NT LM DES (Raw):   7895000 (pentium3)
NT LM DES (Raw):   7866000 (pentium2)
NT LM DES (Raw):   7794000 (i386)
NT LM DES (Raw):   7780000 (pentium4)
NT LM DES (Raw):   7752000 (pentium)
NT LM DES (Raw):   7683000 (i586)
NT LM DES (Raw):   7683000 (pentium-mmx)
NT LM DES (Raw):   7547000 (k6-3)
NT LM DES (Raw):   7534000 (k6)
NT LM DES (Raw):   7494000 (i486)
NT LM DES (Raw):   7443000 (k6-2)

OpenBSD Blowfish (Raw):       356 (i686)
OpenBSD Blowfish (Raw):       356 (pentium2)
OpenBSD Blowfish (Raw):       355 (athlon)
OpenBSD Blowfish (Raw):       355 (k6)
OpenBSD Blowfish (Raw):       355 (pentiumpro)
OpenBSD Blowfish (Raw):       354 (athlon-4)
OpenBSD Blowfish (Raw):       354 (athlon-mp)
OpenBSD Blowfish (Raw):       354 (athlon-tbird)
OpenBSD Blowfish (Raw):       354 (athlon-xp)
OpenBSD Blowfish (Raw):       354 (i586)
OpenBSD Blowfish (Raw):       354 (pentium)
OpenBSD Blowfish (Raw):       354 (pentium-mmx)
OpenBSD Blowfish (Raw):       354 (pentium4)
OpenBSD Blowfish (Raw):       353 (pentium3)
OpenBSD Blowfish (Raw):       352 (i386)
OpenBSD Blowfish (Raw):       352 (i486)
OpenBSD Blowfish (Raw):       352 (k6-2)
OpenBSD Blowfish (Raw):       352 (k6-3)

Raw MD5 (Raw):   3339000 (i386)
Raw MD5 (Raw):   3329000 (pentium4)
Raw MD5 (Raw):   3302000 (i486)
Raw MD5 (Raw):   3297000 (k6)
Raw MD5 (Raw):   3276000 (athlon)
Raw MD5 (Raw):   3276000 (athlon-mp)
Raw MD5 (Raw):   3276000 (athlon-tbird)
Raw MD5 (Raw):   3276000 (k6-2)
Raw MD5 (Raw):   3276000 (k6-3)
Raw MD5 (Raw):   3276000 (pentium)
Raw MD5 (Raw):   3266000 (athlon-4)
Raw MD5 (Raw):   3266000 (athlon-xp)
Raw MD5 (Raw):   3256000 (i586)
Raw MD5 (Raw):   3246000 (pentium-mmx)
Raw MD5 (Raw):   3226000 (pentium3)
Raw MD5 (Raw):   3216000 (i686)
Raw MD5 (Raw):   3216000 (pentium2)
Raw MD5 (Raw):   3206000 (pentiumpro)

SHA1 (Raw):   2849000 (pentium4)
SHA1 (Raw):   2818000 (pentium)
SHA1 (Raw):   2803000 (pentium-mmx)
SHA1 (Raw):   2796000 (i486)
SHA1 (Raw):   2795000 (i586)
SHA1 (Raw):   2788000 (i386)
SHA1 (Raw):   2788000 (k6)
SHA1 (Raw):   2788000 (k6-3)
SHA1 (Raw):   2781000 (athlon)
SHA1 (Raw):   2781000 (athlon-tbird)
SHA1 (Raw):   2781000 (k6-2)
SHA1 (Raw):   2774000 (pentium2)
SHA1 (Raw):   2767000 (athlon-mp)
SHA1 (Raw):   2766000 (pentium3)
SHA1 (Raw):   2759000 (athlon-4)
SHA1 (Raw):   2759000 (athlon-xp)
SHA1 (Raw):   2745000 (pentiumpro)
SHA1 (Raw):   2744000 (i686)

Traditional DES (Many salts):    894778 (athlon)
Traditional DES (Many salts):    894778 (athlon-4)
Traditional DES (Many salts):    894778 (athlon-mp)
Traditional DES (Many salts):    894778 (athlon-tbird)
Traditional DES (Many salts):    894778 (athlon-xp)
Traditional DES (Many salts):    894778 (k6)
Traditional DES (Many salts):    894778 (pentium)
Traditional DES (Many salts):    894778 (pentium-mmx)
Traditional DES (Many salts):    894778 (pentium2)
Traditional DES (Many salts):    894778 (pentium3)
Traditional DES (Many salts):    894778 (pentium4)
Traditional DES (Many salts):    893348 (i386)
Traditional DES (Many salts):    893253 (k6-3)
Traditional DES (Many salts):    891829 (i486)
Traditional DES (Many salts):    891734 (pentiumpro)
Traditional DES (Many salts):    890314 (i586)
Traditional DES (Many salts):    890314 (i686)
Traditional DES (Many salts):    888899 (k6-2)

Traditional DES (Only one salt):    838848 (athlon)
Traditional DES (Only one salt):    836338 (athlon-tbird)
Traditional DES (Only one salt):    836338 (k6-3)
Traditional DES (Only one salt):    836172 (athlon-4)
Traditional DES (Only one salt):    836172 (athlon-mp)
Traditional DES (Only one salt):    836172 (athlon-xp)
Traditional DES (Only one salt):    836172 (i386)
Traditional DES (Only one salt):    836172 (k6)
Traditional DES (Only one salt):    836172 (pentium4)
Traditional DES (Only one salt):    833679 (k6-2)
Traditional DES (Only one salt):    833679 (pentium)
Traditional DES (Only one salt):    833679 (pentium3)
Traditional DES (Only one salt):    833679 (pentiumpro)
Traditional DES (Only one salt):    831200 (i686)
Traditional DES (Only one salt):    831200 (pentium-mmx)
Traditional DES (Only one salt):    831036 (pentium2)
Traditional DES (Only one salt):    825962 (i486)
Traditional DES (Only one salt):    825962 (i586)
Получив эти данные, вы можете выбрать для повторного тестирования более понравившиеся для вас сборки. Вот допустим я для повторного тестирования скорости могу выбрать сборки i386, athlon-4, athlon. Повторное тестирование нужно для того, чтоб учитывать погрешности связанные с тем, что вы можете во время тестирования занимать память и проц другими задачами. Грубо говоря, режим -test не совсем точен. Самая лучшая проверка это практика. Кстати имея результаты сравнения скорости, имет смысл переименовать некоторые ехе'шники по типам хешей. Вот для примера, сборку pentium можно переименовать в john-sha1, и после вы не забудете, что именно эта сборка более подходит для брута sha-1 хешей.

Последний раз редактировалось Thanat0z; 27.06.2007 в 01:01..
 
Ответить с цитированием