#!/usr/bin/perl -w # stress_log.pl - Don Yang (uguu.org) # # Generate log file that takes a long time to summarize. # # 2007/11/02 use strict; # Tokens to be written to output logs. Actual output will be exponential # in number of tokens. 6 seems to be a pretty good number, 7 would take # the OCaml version ~2 minutes to summarize, using ~200MB of memory. my @Tokens = ("hoge", "piyo", "fuga", "hogera", "hogehoge", "piyopiyo"); my $TokenCount = $#Tokens + 1; sub OutputEvent($$) { my ($time, $event) = @_; my ($s, $m, $h, $day, $month, $year) = gmtime($time + 1170316800); printf '%04d-%02d-%02d %02d:%02d:%02d %s'."\n", $year + 1900, $month + 1, $day, $h, $m, $s, $event; } sub GenerateEvent($) { my ($index) = @_; my (@parts); for(my $i = 0; $i < $TokenCount; $i++) { push @parts, $Tokens[$index % $TokenCount]; $index = int($index / $TokenCount); } return join ' ', @parts; } my $t = 1; OutputEvent(0, "{{{"); for(my $i = 0; $i < $TokenCount ** $TokenCount; $i++) { OutputEvent($t++, GenerateEvent($i)); } OutputEvent($t, "}}}");