25. Dezember 2012 21:12

Re: DIE LEUTE WERDEN NICH MÜDE, DAS RAD NEU ZU ERFINDEN

>>  Ne, ob ich eine Datenstruktur mit einem Funlktionsaufruf initia-
>> lisiere oder ob ich nen Konstruktor aufrufe ist Performance-mä-
>> ßig das selbe.

> Sehe ich theoretisch auch so - habe da aber in der Praxis z.T.
> andere Erfahrungen.

Ja, was sind die Alternativen?

>> Beweis dafür, dass es *daran* liegt?

> Hab das vor Jahren mal ge'profiled': relocation und linking der
> ganzen C++ libs frisst beim KDE-ramp-up ganz schön Zeit.

Glaub ich nicht. Relokation und Symbol-Lookup sind sicher um
Größenordnungen schneller als das I/O für das Laden der Module
zu denen gelinkt wird, zumindest auf heutigen Rechnern.

>> Auch das ist kompletter Käse. Guck dir z.B. die typsicheren C++
>> -Collections der C++-Standardbibliothek an. Und bekomm mal
>> mit gleichermaßen knappem Code in C die gleiche Performance
>> hin.

> Die STL benutze ich gerne, eben weil man damit schnellen und
> kleinen Code hinbekommt - ...

Die STL macht keinen kleinen Code. Eher im Gegenteil wird durch
die Template-Expansion der Code ganz schön gebloatet. Trotzdem
ist's üblicherweise schneller als nicht spezialisierter Code.

>>> Da kann man es dann evtl. auch gleich in C manchen :-)
>>> Wie erwähnt, der Linux-Kernel ist hierfür ein gutes Beispiel.

>> Der Linux-Kernel beweist nicht deine Argumentation.

> Inwiefern nicht?

Die Relation zwischen C++ und C ist nicht anhand des Linux-Kerns
beweisbar weil es ja keien Linux-Kern in C++ gibt.

> Auch auf die Gefahr hin mich zu wiederholen: man kann auch C++
> Programme schnell bekommen, aber nur wenn man sich sein Libs
> sorgfältig zusammensucht. Wenn man sich einfach wahllos irgend-
> was zusammenklaubt dann wird es eher ziemlicher bloat, IMHO.
> Sieht Linus Torwalds übrigens genau so:

> http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918

Das sind völlig andere Aussagen als Du sie hier machst; fast ein
komplett anderes Thema.
Außerdem kann man im Gegensatz zu dem was Torvalds da sagt
schon effizienten C++-Code schreiben *und* gleichzeitig einen
hohen Level an Abstraktion haben.

Anzeige