Thread Suche in einem großen file parallelisieren (3 answers)
Opened by amos at 2014-08-14 16:49

amos
 2014-08-14 16:49
#176844 #176844
User since
2014-08-07
9 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich versuche mit >8 gleichzeitigen read_only Zugriffen eine große Datei nach 8 verschiedenen Strings durchsuchen. Gibt es eventuell noch einen schnellere Methode als mmap?
Meine erste Lösung war das File komplett in den Hauptspeicher zu laden, aber schon das Einlesen dauert auf meinem Notebook 55s pro Gbyte.
Ich habe mal was von einer "map reduce" Technik gelesen, welches Perl Modul wäre das, damit ich auch dieses Verfahren mal testen kann?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
# Create 1 GB file if you do not have one:
# dd if=/dev/urandom of=test.bin bs=1048576 count=1000
use strict; use warnings;
use Sys::Mmap;
open (my $fh, "test.bin") or die "open: $!";
my $t = time;
print "mmapping.. ";
mmap (my $mh, 0, PROT_READ, MAP_SHARED, $fh) or die "mmap: $!";
my @all_b = $mh =~ /0xb/g;
my $cnt = @all_b;
my $runtime = time()-$t;
print STDERR "found $cnt 0xb, in $runtime  seconds\n";

View full thread Suche in einem großen file parallelisieren