Wie "sparsam" eine Konstante via XS nach Perl leiten?

10/10/2013 - 00:24 von Manuel Reimer | Report spam
Hallo,

ich verwende aktuell "newCONSTSUB" um Konstanten aus C-Header-Files nach
Perl auszuleiten. Das klappt soweit auch ganz gut.

Es geht um etwa 30 Konstanten die ich so ausleite.

Irgendwo habe ich aufgeschnappt, dass ein "sub" für eine Konstante recht
verschwenderisch sein soll. Was ist da dran? Gibt es sparsamere
Alternativen?

Gruß

Manuel
 

Lesen sie die antworten

#1 Bjoern Hoehrmann
10/10/2013 - 11:31 | Warnen spam
* Manuel Reimer wrote in de.comp.lang.perl.misc:
ich verwende aktuell "newCONSTSUB" um Konstanten aus C-Header-Files nach
Perl auszuleiten. Das klappt soweit auch ganz gut.

Es geht um etwa 30 Konstanten die ich so ausleite.

Irgendwo habe ich aufgeschnappt, dass ein "sub" für eine Konstante recht
verschwenderisch sein soll. Was ist da dran? Gibt es sparsamere
Alternativen?



Zur Laufzeit sollte das kaum Unterschiede machen:

% perl -MBenchmark -e "use constant K => 7; our $L = 9;
timethese 10_000_000 => {
x => sub { die if K() * rand() > 10 },
y => sub { die if $L * rand() > 10 } }"
Benchmark: timing 10000000 iterations of x, y...
x: 15 wallclock secs (13.85 usr + 0.00 sys = 13.85 CPU) ...
y: 15 wallclock secs (14.26 usr + 0.00 sys = 14.26 CPU) ...

Natürlich sind auch noch Speicherbedarf und Initialisierungskosten zu
bedenken, die aber ebenfalls nicht ins Gewicht fallen sollten wenn es
nur um ein paar Dutzend Konstanten geht.
Björn Höhrmann · mailto: · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Ähnliche fragen