Re: 64 Bit auf WebServer

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 30 Jan 2006 11:35:22 +0100 (CET)

till toenges <tt(at)kyon.de> wrote:
> Oliver Fromme wrote:
> > Nach meiner Erfahrung macht sich Inlining in vielen
> > Fällen eher negativ bemerkbar, da die Caches schneller
> > überlaufen (das ist auch der Grund, weshalb bei gcc
> > häufig die Optimierung -Os empfohlen wird). Früher war
>
> Dann macht der Compiler das falsch, oder wird mit ungeeigneten Optionen
> verwendet (optimiert für falschen Prozessor o.ä.); er darf nicht

Gerade bei der i386-Plattform (aber nicht nur dort) hat der
gcc in vielen Fällen keine verläßlichen Informationen über
die Größen der Caches, und kann diese mithin nicht in die
Optimierung mit einbeziehen.

Davon abgesehen würde ich ohnehin in den meisten Fällen
nicht auf einen bestimmten Prozessor optimieren. Mit all-
gemeineren Optimierungen bin ich in der Praxis bisher bes-
ser gefahren.

Übrigens habe ich von gcc sowieso keine besonders gute Mei-
nung. Er erzeugt vergleichsweise langsamen Code und ist
auch selbst eher langsam. Und seine Fehlermeldungen rei-
chen von lustig über nervend bis sinnlos. Der einzige
Grund, warum ich ihn hernehme, ist der, daß FreeBSD keinen
besseren Compiler unterstützt. (Ja, ich weiß, es gibt di-
verse Projekte, die mit ICC, TenDRA oder anderen herum-
spielen, aber das sind alles noch recht wacklige, unfertige
Sachen, die von offizieller Unterstützung noch weit ent-
fernt sind.)

> > Naja, hauptsächlich für den »Trick«, 64-Bit-Werte zu
> > speichern und zu bearebiten. :-) Solche kommen ja in
> > der Praxis durchaus häufig vor, allein schon im FreeBSD-
> > Kernel: Ein »off_t« ist 64 Bit groß, der wird z.B. für
> > Dateigrößen verwendet (in inodes u.a.), Seek-Pointer usw.;
> > die Byte- und Paketzähler von IPFW, IPF und PF sind 64 Bit
> > groß etc.
>
> Die "Emulation" von 64 Bit breiten Datentypen ist, von der Performance
> her, im Vergleich zum Gesamtprogramm in den meisten Fällen zu
> vernachlässigen, weil sie so selten sind.

Wie kommst Du darauf? Das kommt sehr häufig vor, vor allem
in I/O-lastigen Bereichen, etwa auf Routern oder Firewalls
mit vielen Regeln, auf File- oder Datenbankservern. Nahezu
alle Counter und Statistikzähler im I/O-Bereich sind 64bit-
Werte. Bei NFS (v3/v4) sind nahezu alle wichtigen Proto-
kollvariablen 64bit groß (File-IDs, Cookies, Größen, Off-
sets). Ähnliches gilt für UFS2, ALTQ und jede Menge andere
Subsysteme. Alles, was mit Crypto zu tun hat, profitiert
immens von native-64bit.

> Mit Tricks meinte ich eher, kleine Strukturen in Registern abzulegen,
> mehrere Werte in einer Art "Poor Man's Vector Register" zu bearbeiten
> usw.

Das gibt es seit etwa zehn Jahren und heißt MMX, 3Dnow o.ä.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"C is quirky, flawed, and an enormous success."
        -- Dennis M. Ritchie.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 30 Jan 2006 - 11:36:54 CET

search this site