Schrift
[thread]6651[/thread]

Diagnostics Pragma



<< >> 9 Einträge, 1 Seite
cocko
 2005-01-22 20:11
#51159 #51159
User since
2005-01-10
18 Artikel
BenutzerIn
[default_avatar]
Super, aufgrund meiner Idiotie landet der Beitrag natürlich wieder im falschen Forum -- war natürlich für 'Allgemeines zu Perl' gedacht.
cocko
 2005-01-22 20:10
#51160 #51160
User since
2005-01-10
18 Artikel
BenutzerIn
[default_avatar]
Hallo.

Gibt es bei der Nutzung von 'diagnostics' irgendwelche großartigen Performanceeinbußen, d.h. sollte man es bei einer "fertigen" Version eines Scriptes/Modules herausnehmen oder ähnlich wie etwa beim 'warnings'-Pragma einfach drin lassen?

gruß, cocko
renee
 2005-01-22 20:52
#51161 #51161
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
*verschieb*
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2005-01-22 21:05
#51162 #51162
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Am Anfang hatte ich das immer an, inzwischen stören mich die Diagnostic Meldungen aber, da ich auch die normalen Warnungen etc. verstehe. Deshalb lasse ich sie jetzt weg.

Da das Modul ja nur zum Zuge kommt, wenn ein Fehler passiert, kannst Du es wohl auch im fertigen Programm drin lassen. Es sei denn das wird dauernd geladen und dadurch würde der Mehraufwand durch das Modul signifikant.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2005-01-23 14:31
#51163 #51163
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn es sich um anwendersoftware handelt (also z.B. auch cgi-script), dann wuerde ich es rausnehmen (besser: auskommentieren), genauso wie use warnings, use CGI::Carp usw., weil
x) es einem Hacker zu viel an Info liefern koennte
x) einen unschuldigen Benutzer mit "Fehlermeldungen" konfronieren koennte, die ihn total verunsichern, und somit wenig professionell aussieht

Besser ist IMHO allerdings, STDERR in eine Logdatei umzuleiten, die man sich bei Problemen senden lassen kann, und "signalhandler" fuer WARN und DIE aufzusetzen, die dann alles dort reinschreiben (backtrace ist oft zum debuggen nuetzlich, siehe z.B. das rezept auf meiner HP -> Perl -> Tips&Tricks -> Enhanced -> Backtracing)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ptk
 2005-01-24 11:37
#51164 #51164
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wie es aussieht, wird das gesamte perldiag.pod-Dokument beim Verwenden von "use diagnostics" geparset. Das merkt man auch:
Code: (dl )
1
2
3
4
$ time perl -Mstrict -e1
0.000u 0.000s 0:00.00 0.0% 0+0k 0+0io 284pf+0w
$ time perl -Mdiagnostics -Mstrict -e1
0.060u 0.000s 0:00.06 100.0% 0+0k 0+0io 340pf+0w

Du koenntest beim Entwickeln diagnostics in der Kommandozeile einschalten: perl -Mdiagnostics scriptname.
pq
 2005-01-24 15:41
#51165 #51165
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn ich einen fehler nicht verstehe, gucke ich einfach so nach:
perldoc perldiag
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
cocko
 2005-01-25 14:24
#51166 #51166
User since
2005-01-10
18 Artikel
BenutzerIn
[default_avatar]
Das warnings-Pragma scheint aber auch schon etwas Zeit zu kosten:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
lichtenb@mond26:~> time perl -Mwarnings -Mstrict -e1

real    0m0.017s
user    0m0.012s
sys     0m0.003s
lichtenb@mond26:~> time perl -Mstrict -e1

real    0m0.007s
user    0m0.004s
sys     0m0.003s


Die Verwendung von strict scheint dagegen kaum etwas auszumachen.\n\n

<!--EDIT|cocko|1106655916-->
ptk
 2005-01-25 21:44
#51167 #51167
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=cocko,25.01.2005, 13:24]Das warnings-Pragma scheint aber auch schon etwas Zeit zu kosten:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
lichtenb@mond26:~> time perl -Mwarnings -Mstrict -e1

real 0m0.017s
user 0m0.012s
sys 0m0.003s
lichtenb@mond26:~> time perl -Mstrict -e1

real 0m0.007s
user 0m0.004s
sys 0m0.003s


Die Verwendung von strict scheint dagegen kaum etwas auszumachen.[/quote]
Meistens benutzt irgendein (Standard|CPAN)-Modul bereits "use warnings", so dass die Wahrscheinlichkeit gross ist, dass die eigenen Anwendung sowieso warnings.pm laedt. "use diagnostics" ist bei ausgelieferten Modulen selten.
<< >> 9 Einträge, 1 Seite



View all threads created 2005-01-22 20:11.