17kb grosses Prog - kann man das lassen
Alex
- perl
0 fastix®0 Alex0 Christian Kruse0 fastix®
0 Frickelmeister
hi,
ich habe ein programm das 17kb größe hat. das programm ist so klein wie nur möglich geschrieben aber es befinden sich 4 subroutinen in dem programm. am anfang habe ich vier programme gehabt und die daten immer durch hidden-felder ausgelesen, da aber user die seite speichern könnten und den wert der hidden-felder ändern könnten habe ich alle vier programme in ein programm geschrieben. jetzt testet das programm was es für eine subroutine aufrufen soll. jetzt kann vom user auch nichts mehr verändert werden, weil alles intern im programm abläuft.
macht es viel aus das das prog jetzt 17kb groß ist?
Moin!
macht es viel aus das das prog jetzt 17kb groß ist?
Nein. Eigentlich nicht. Dennoch solltest Du überlegen, ob (so klingt Dein Posting in meinen Ohren) ein "multiaffenscript" notwendig ist. Affenscripte sind solche, die sich immer wieder mit verschiedenen Parametern selbst aufrufen.
Vielleicht solltest Du mal was über das Konzept von Sessions lesen: da erfolgt die Datenhaltung auf dem Server... ich bin nämlich nicht der Meinung, daß ein Affenscript Deine Sicherheitsprobleme (so hab ich das gelesen) wirklich löst.
Viel wichtiger, als wie 'groß' Dein Skript ist (es ist nicht wirklich groß...) ist, was es macht und wie es mit den Resoourcen des Rechners umgeht. Denke auch daran, daß es womöglich hundert(e) mal innerhalb einer Sekunde gestartet wird. Ach und noch was: Du hast geschrieben, Du hättest es so programmiert, daß es sehr klein sei. Das ist oft nicht wirklich "optimal": Wer soll das pflegen? Derartifer Programmcode ist deshalb "schlecht", weil er nur schwer zu lesen oder zu verstehen ist. Viel schneller ist er nicht. Perl interpretiert zwar, aber verwendet eine etwas andere Methode um zu dies vorzunehmen: Es kompiliert mehr oder weniger bei jedem Aufruf die gesamte Datei und kann deswegen selbst Optimierungen vornehmen. Du bist also nicht auf diesen verdichteten Code angewiesen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Ach und noch was: Du hast geschrieben, Du hättest es so programmiert, daß es sehr klein sei. Das ist oft nicht wirklich "optimal": Wer soll das pflegen? Derartifer Programmcode ist deshalb "schlecht", weil er nur schwer zu lesen oder zu verstehen ist.
ja ich hab mich da ein bisschen falsch ausgedrückt, der code ist schon über sichtlich. ich meinte damit, dass wenn man ein grosses prog hat das man manchmal fehler macht, wie z.B. zwei oder dreimal mit einer datenbank verbindet bzw. anfragen macht obwohl man das in einer abfrage lösen könnte.
das mit dem affenscript bzw. mehrere progs in einem muss so sein da sonst user unsinn treiben könnten.
gerade wollte ich es ein bisschen erklären, aber das ist echt zu kompliziert um es zu erklären.
aber danke.
Moin!
gerade wollte ich es ein bisschen erklären, aber das ist echt zu kompliziert um es zu erklären.
Wenn es zu kompliziert ist, um es zu erklären, dann ist erst recht zu kompliziert, um es zu programmieren. Sicher, dass du alles richtig gemacht hast?
- Sven Rautenberg
Moin!
gerade wollte ich es ein bisschen erklären, aber das ist echt zu kompliziert um es zu erklären.
Wenn es zu kompliziert ist, um es zu erklären, dann ist erst recht zu kompliziert, um es zu programmieren. Sicher, dass du alles richtig gemacht hast?
ja da bin ich mir sicher. es nicht wirklich kompliziert, aber es würde echt lange dauern weil ich dann alles erklären müsste da es sonst nicht sinnvoll klingen würde.
Moin!
Wenn es zu kompliziert ist, um es zu erklären, dann ist erst recht zu kompliziert, um es zu programmieren. Sicher, dass du alles richtig gemacht hast?
ja da bin ich mir sicher. es nicht wirklich kompliziert, aber es würde echt lange dauern weil ich dann alles erklären müsste da es sonst nicht sinnvoll klingen würde.
Willst du dir die Chance entgehen lassen, professionelle Meinungen einzuholen? Niemand hat behauptet, das Leben wäre leicht und unaufwendig.
- Sven Rautenberg
Hallo Sven,
Willst du dir die Chance entgehen lassen, professionelle Meinungen
einzuholen? Niemand hat behauptet, das Leben wäre leicht und
unaufwendig.
Du bist zu neugierig ;)
Grüße,
CK
Hallo fastix®,
Perl interpretiert zwar, aber verwendet eine etwas andere Methode um
zu dies vorzunehmen: Es kompiliert mehr oder weniger bei jedem Aufruf
die gesamte Datei
Das stimmt so nicht. Der Code wird in Syntax-Baeume transformiert, die
dann ausgefuehrt werden. Compilieren wuerde eine Code-Uebersetzung
(und sei es nur Bytecode) bedingen, die findet hier jedoch nicht
statt. Anders ist das bei Perl 6, wo die Scripte erst nach Parrot
uebersetzt und dann ausgefuehrt werden. *Dort* wird wirklich eine
Compilation vorgenommen.
und kann deswegen selbst Optimierungen vornehmen. Du bist also
nicht auf diesen verdichteten Code angewiesen.
Das stimmt so auch nicht. Durchaus macht Perl Optimierungen, die
jedoch ersetzen in keinem Fall einen durchdachten Algorithmus oder
Hand-Optimierungen. Belegbar mit einem ganz einfachen Beispiel:
ckruse@sunshine:~ $ perl test.pl
Benchmark: timing 1000 iterations of split1, split...
split1: 93 wallclock secs (71.20 usr + 0.24 sys = 71.44 CPU) @ 14.00/s (n=1000)
split: 38 wallclock secs (28.05 usr + 0.11 sys = 28.16 CPU) @ 35.51/s (n=1000)
ckruse@sunshine:~ $ cat test.pl
#!/usr/bin/perl -w
use strict;
use Benchmark;
my $data = 'abcxyz|' x 10000;
timethese(1000, {
'split' => sub {
my @pieces = split /|/ => $data;
},
'split1' => sub {
my @pieces = split /([^|]+)/ => $data;
}
}
);
Wuerde Perl wirklich derart optimieren, wie du behauptet hast, so
muessten beide Varianten gleich schnell sein. Sie machen beide
das gleiche, sind aber technisch voellig unterschiedlich. Ich koennte
jetzt noch mehr Beispiele anbringen, stattdessen empfehle ich
'Effektiv Perl Programmieren' von Randall Schwartz ;)
Gruesse,
CK
Moin!
Nein. Ich habe das ausführen von "verdichtetem" Code gemeint, also eher sowas:
ob nun
if($a){print "Hallo Welt";}
oder:
if ($a)
{
print "Hallo Welt";
}
steht sollte so ziemlich egal sein, obwohl Variante 1 ein paar Byte spart. Übersichtlicher und pflegbarer ist IMHO Variante 2. Dein Beispiel dürfte indes ohnehin sehr schwer maschinell zu optimieren sein. Obwohl ich da auch irgendwo, irgendwas zu gelesen habe, warum Perl gerade bei Regexen so vorteilhaft wäre.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hola,
du könntest aber die "require" Funktion anwenden und immer nur den Teil des Codes importieren, den du gerade brauchst. Ich sollte das vielleicht auch mal so machen, weil mein Forumscript 60kbyte groß ist.
Frickelmeister.