Re: 64 Bit auf WebServer

From: till toenges <tt(at)kyon.de>
Date: Fri, 27 Jan 2006 02:26:59 +0100

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
zuviel inlinen. Das -Os so gut ist, liegt eher daran, dass der GCC bei
-O3 häufig überhaupt ziemlichen Käse produziert. Habe mir das allerdings
noch nicht bei den 4er Versionen angesehen. Ich hoffe, die sind da etwas
intelligenter.

> 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 oft braucht man schon
size_t, off_t usw.? Und wenn, dann ist das meist eh nicht die
performancekritische Stelle im Programm, sondern irgendwas wo I/O
gemacht wird und der Flaschenhals ganz woanders sitzt.

Mit Tricks meinte ich eher, kleine Strukturen in Registern abzulegen,
mehrere Werte in einer Art "Poor Man's Vector Register" zu bearbeiten
usw. Der GCC beherrscht solche Optimierungen aber eher nicht, da muss
man schon nachhelfen.

> muß. Insbesondere wenn noch Locking ins Spiel kommt, weil
> auf einem SMP-System oder in einer Multithreaded-Anwendung
> ein 64-Bit-Wert atomar bearbeitet werden muß, nimmt der
> Performance-Unterschied beträchtliche Dimensionen an.

Das stimmt schon. Kommt aber auch nicht gerade häufig vor, dass man
einen einzelnen 64 Bit Wert atomar bearbeitet. Meistens benutzt man eh
andere Techniken an Stellen, wo es um die Synchronisierung geht. Habe
diesen Fall jedenfalls noch nie gesehen.

Till

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 27 Jan 2006 - 02:30:54 CET

search this site