Apropos bloat

08/03/2014 - 09:18 von Nils M Holm | Report spam
Kürzlich habe ich ein 10.0-FreeBSD image für mein Raspi bauen wollen,
per cross-compile auf meinem T40. Ging auch prima, aber eine Sache
ist mir sehr unangenehm aufgefallen. Seit 10.0 ist Clang ja der
default compiler auf FreeBSD. Finde ich prinzipiell gut, weil GCC
ja doch sehr bloatig ist. Dachte ich.

Von den 10 Stunden build world brauchte 5 Stunden alleine Clang/LLVM.
Nochmal fünf Stunden für das *komplette* *restliche* *System*. Das
resultierende Compiler-Binary ist 20MB (zwanzig Megabytes) gross.
Hallo? Geht's noch? 20MB war die Größe der Festplatte, auf der mein
erstes Unix lief, *inclusive* C Compiler, und da waren noch über
10MB *frei*.

OK, Clang und GCC optimieren ganz toll, aber ganz ehrlich: ich
benutze fast immer -O0, weil ich die Performance nicht brauche
(weil ich schnelle Algorithmen statt 25 Schichten bloat verwende)
und weil das Kompilieren sonst ewig dauert. Mein default compiler
ist sowieso der PCC, weil er mit -O immernoch schneller ist als
GCC und Konsorten mit -O0 und immernoch passablen Code erzeugt.
Und etwas kleiner ist er auch:

-r-xr-xr-x 1 root wheel 281092 Jul 17 2012 /usr/local/libexec/ccom (PCC)
-r-xr-xr-x 1 root wheel 5432832 Feb 18 2011 /usr/libexec/cc1 (GCC)

Ich denke, wenn ein C compiler mehrere MB groß ist, ist das ein
deutliches Zeichen dafür, dass etwas *total* schief geht. Und tolle
Optimierung verschleiert nur das eigentliche Problem: dass moderne
Software verrottet bis in die Wurzeln ist.

Beispielsweise habe ich ein Smartphone mit multi-core und 1,nochwas
Gigaherz und tonnenweise RAM und wenn ich auf ein Textfeld drücke,
dauert es bis zu *drei* *Sekunden* bis ein Keyboard aufklappt. Ich
bilde mir ein, ich könnte zusehen, wie die Tasten gerendert werden.

Compiler wie Clang/LLVM und GCC sind kein toller Fortschritt,
sondern ein Symptom dafür, dass moderne Software restlos kaputt
ist. Und gleichzeitig eine Notwendigkeit, weil man in einer
desolaten, bloatigen Infrastruktur ohne sie nicht mehr auskommt.

Rewind, erase. Alles andere hilft da nicht mehr.

Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org
 

Lesen sie die antworten

#1 Thomas Orgelmacher
08/03/2014 - 11:05 | Warnen spam
Am 08.03.2014 10:06, schrieb Kay Martinen:

Aber ich frage mich auch immer noch warum eine ATA-HD nun unbedingt sda
heißen muss, selbst wenn sie nicht mal einen S-ATA Anschluß hat. Früher
hießen ATA-HDs "hdx" und SCSI war "sdx" das war deutlich, einfach und
verstàndlich. Musste das auf pseudo-SCSI umgemodelt werden?



Da ist genau das passiert, was Du haben willst: aus zwei Subsystemen
wurde eins.


Thomas

I have seen things you lusers would not believe. I've seen Sun
monitors on fire off the side of the multimedia lab. I've seen
NTU lights glitter in the dark near the Mail Gate. All these
things will be lost in time, like the root partition last week.

Ähnliche fragen