Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- $attempt = 30;
- #$target_time = get_time("59|16:27:28:017|INFO|CitiTickerBBOTradeHandler|ProcessNBBO|took:1290616048017425|");
- $target_time = get_time("52|16:54:05:595|INFO|3IN.L|EBBO|Symbol:3IN.L|Bid:0.0|BidSize:0|Ask:120.0|As");
- $target_time = $target_time-4000;
- print " Target: ".$target_time."ms\n";
- my $min = 0;
- my ($max) = (stat("test_data"))[7];
- open LOG, "<test_data" or die $!;
- my $seek = 1000000;
- seek(LOG, $seek, 0);
- $line = <LOG>;
- $line = <LOG>;
- my $found_time = get_time($line);
- while($target_time-$found_time > 200000 || $target_time-$found_time < 0) {
- my $from_goal = $target_time-$found_time;
- if($from_goal > 0) {
- print "-> left to goal\n";
- if($seek > $min) {
- $min = $seek;
- print "# Min seek: ".$min."\n";
- }
- $bit = int(($max-$min)*.5);
- $seek = $min+$bit;
- print " ++ seek: ".$seek." [".$bit."]\n";
- } else {
- print "-> right to goal\n";
- if($seek < $max) {
- $max = $seek;
- print "# Max seek: ".$max."\n";
- }
- $bit = int(($max-$min)*.5);
- $seek = $max-$bit;
- print " -- seek: ".$seek." [".$bit."]\n";
- }
- if($attempt-- < 0) {
- print "> FUCK\n";
- seek(LOG, 0, 0);
- last;
- }
- seek(LOG, $seek, 0);
- $line = <LOG>;
- $line = <LOG>;
- $found_time = get_time($line);
- print "Found Time: ".$found_time."ms\n";
- print " From Goal: ".($target_time-$found_time)."ms\n";
- print "################################################### ".$attempt."\n";
- }
- print "DONE\n";
- close(LOG);
- sub get_time {
- my $time = 0;
- if($_[0] =~ m/.*?\|(\d*?:\d*?:\d*?:\d*?)\|/) {
- @timesegs = split( /:/, $1);
- $time = ($timesegs[0]*60*60*1000)+($timesegs[1]*60*1000)+($timesegs[2]*1000)+($timesegs[3]);
- }
- $time;
- }
Add Comment
Please, Sign In to add comment