Thread Optimieren
(21 answers)
Opened by kabel at 2003-08-20 12:05
zusaetzlich koenntest du es auch noch perl-maessig ein klein wenig schneller machen (macht zwar nicht viel aus):
1. Da du die OOP-CGI-Syntax verwendest, kannst du auf den Exporter verzichten: use CGI (); # no namespace pollution 2. my $q = CGI::->new(); 3. $username = (split /\//, $url)[-1]; da koennte ($username) = $url =~ /\/([^\/]+)$/; schneller sein 4. Du hast folgende Struktur: Code (perl): (dl
)
1 2 3 4 5 6 if (!($design eq "own")) { } if ($design eq "own") { } else { } da besser zusammenfassen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #Art und Name des Designs ermitteln if ($design eq "own") { $name = "own"; } else { open(FILE, "$internmaindir/userdaten/$userid/daten/payeddesigns.dat") or FEHLERABFRAGE; flock FILE,1; @designs = <FILE>; s/\n// foreach (@designs); close(FILE); foreach(@designs) { if ($_ eq $design) { $found = "ja"; } } if (!($found eq "ja")) { require "hpm_homepage_designnn.cgi"; } $anfrage = "SELECT name FROM hpm_designs WHERE designid='$design'"; &datenbank; $ergebnisse = $sth->fetchall_arrayref( { name => 1 } ); foreach(@$ergebnisse) { $name = $_->{name}; } } 5. s/\n// foreach (@designs); schneller ist: chomp(@designs); wenn nur die Zeilenumbrueche am Ende weggeworfen werden sollen 6. open (FH, $filename); wieso machst du da keine fehlerabfrage? bist du 100% sicher, dass das immer gut geht (auch in 5 jahren?) Code (perl): (dl
)
1 2 3 unless (open (FH, $filename)) { die "Error: couldn't read '$filename': $!\n"; } oder so aehnlich das sind so die Sachen, die mir perl-maessig aufgefallen sind. Ich empfehle dir sehr, mit use warnings und use strict zu entwickeln, weil du dir viel zeit bei der Fehlersuche sparst... perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |