[Vienna-pm] anmerkungen ..
gooly at gmx.at
gooly at gmx.at
Fri May 25 09:09:18 PDT 2007
Hallo,
kurze Frage nach Einschätzungen..
Ich hab meinen kleinen Server, der ab und zu Files aus der RAM-Disk an
remote-Clients (über $SOCKET) schicken soll.
Die Files sind zT gezippt zum Teil nicht.
Um jetzt einerseits das Perl-Prg kleinzuhalten, andererseits den
Speicherverbrauch aus dem (24/7) Perl-Prg 'raus'-zuhalten (ich erinnere
mich an einen Thread zu Speicherfressern hier) habe ich mir etwas s.u.
ausgedacht.
Ich bin aber ein bißchen unsicher, das Ganze schaut schon so einfach
aus, dass ich nicht ganz dran gkauben kann. Denn wenn es wirklich so
simpel ist, sollte das ein Perl-Standardfeature sein und in den
tutorials stehen - oder?
foreach my $f ( liesFiles($FileDir) ) {
open( SAVEOUT, "<&STDOUT" ) or warn "can't save stdout: $!\n";
open( STDOUT, "<&", $SOCKET ) or warn "can't dup to stdout:$!\n";
if ($f =~ /\.zip/) {
system('unzip', '-p', $f );
} else {
system('cat', $f);
}
open( STDOUT, "<&SAVEOUT" ) or warn "can't restore stdout: $!\n";
}
Also das mit unzip klappt.
Das mit cat hab ich noch nicht probiert. Frage dazu gäbe es zu 'cat'
einen bessere Alternative?
Kann man so wirklich im aufrufenden Perl-Programm den Speicherverbrauch
vermeiden, den zB ein
my $str;
open F, "<$file" or warn "$!\n";
read F, $str, (-s $file);
close(F);
...
von der Größe des Files verursachen würde?
Sieht jemand Risiken oder Probleme?
Wie gesagt das ist so einfach, dass ich noch irgendwo einen Haken
vermute :)
Ansonsten allen aber ein schöne Ping sten
Calli
More information about the Vienna-pm
mailing list