Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6332[/thread]

Subroutinen auslagern?

Leser: 1


<< >> 4 Einträge, 1 Seite
ppm1
 2004-06-13 02:10
#83320 #83320
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Hallo

Ich habe mal eine Frage:

Ist es sinnvoll im Sinne von effiziens und belastung, Subrutinen in Modulen auszulagern, anstatt diese im Skript zu verwenden. (z.B. wenn sie nicht jedesmal benutzt werden) oder ist es besser diese in eine Datei zu packen?

1. Nur in einer Datei benötigt
2. In mehreren Dateien benötigt.

Für normale Perl-Skripte, mod_perl und Persistent Perl Skripte bitte anworten...

Auch für den Unterschied ob
A. Ein Benutzer nur benutz
B. Viele (z.B. 200) gleichzeitig die Skripte aufrufen
Strat
 2004-06-13 03:39
#83321 #83321
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn sie nicht jedesmal benutzt werden, kann man ein Modul bei Bedarf mit require laden, was eventuell Laufzeit sparen kann, wenn die Funktionalitaet nur sehr selten gebraucht wird.
sonst haengt es stark davon ab, was du machen willst, ob diese Module auch von anderen Scripten verwendet werden sollen (dann wird es oft unwartbar, wenn man die Subroutinen in die einzelnen Scripte reinkopiert).

z.B. Bei Apache -> mod_perl kann es einiges an Laufzeit bringen, wenn man die Module schon ueber ein init-script vorladen laesst...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ppm1
 2004-06-13 14:38
#83322 #83322
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Ich mache es z.B. bisher immer so:


ich habe ein Skript:
meins.pl

Das wird dann aufgerufen z.B. mit

meins.pl?art=rein
meins.pl?art=raus
....


In dem Skript wird dann das in art in $art ausgelesen und dann mittels einer if-elsif-else Anweisung unterschieden in welche Subrutine es springen soll.
Diese subrutinen liegen zur Zeit noch in dem Skript.

Macht es jetzt sinn, diese in Module zu packen oder für jede dieser Subrutinen, eine eigene Datei anzulegen?
Also nicht 100 KB für eine Datei sondern z.B. im Durchschnitt 20 Dateien mit je 7 KB (es gibt ja auch dinge die in mehrere rein kommen, vielleicht...)?

(Wieder von Belastungsgründen gesehen..)


Bitte wieder angewandt auf:
A. normales Perl
B. Mod_Perl
C. Persistent Perl (Perperl: http://search.cpan.org/author....Perl.pm)

Danke.
ptk
 2004-06-14 13:50
#83323 #83323
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei mod_perl ist es eher besser, den gesamten Perlcode so frueh wie moeglich zu laden, vielleicht sogar zur Apache-Startzeit per PerlRequire, denn der Prozess bleibt persistent und kann dann immer auf den geladenen Code zurueckgreifen. PersistentPerl kenne ich nicht, aber da duerfte es aehnlich aussehen. Ich nehme an, dass du mit "normalem" Perl CGI-Skripte meinst. Hier ist es in der Tat besser, wenn man das Nachladen so lange wie moeglich verzoegert, insbesondere wenn nicht jeder Request alle Module benoetigt. Also lieber "require" kurz vor Verwenden der jeweiligen Funktionalitaet statt eines "use" verwenden.
<< >> 4 Einträge, 1 Seite



View all threads created 2004-06-13 02:10.