Seite 112 von 252

Re: Jammer-Thread

Verfasst: 22.05.2013, 18:25
von kaiserludi
Ich reviewe gerade eine umfangreiche Menge Code eines relativ neuen Kollegen und bin mal wieder kurz davor, anzufangen ein Tool wie StyleCop für C++ zu schreiben.

Locker 200-300 neue Klassen, die den Weg in mein Projekt finden sollen und praktisch jede hat ihr eigenen Namensschema, für was sie nun camelCase, wofür PascalCase oder auch std_lib_style, ob und für was sie Prefixes einsetzt, aber alle Stylechecktools für C++ scheinen sich auf Indentation, Alignment, Padding und Formatting zu beschränken (http://www.suodenjoki.dk/us/archive/201 ... kstyle.htm).

Mal sehen, ob dieses mal meine Verzweiflung groß genug ist, um mich ernsthaft an ein solches Projekt zu machen.
Ein Open Source C++ Parser mit vollständigem Sprachumfang und und ohne große Abhängigkeiten sollte doch zu finden sein.

Re: Jammer-Thread

Verfasst: 22.05.2013, 18:45
von glassbear
Chromanoid hat geschrieben:Hast Du mal Netbeans (für C++) ausprobiert? Mich würden da die Unterschiede interessieren...
Ja. Netbeans war wesentlich angenehmer zu nutzen fuer C/C++ und hat auch wesentlich besser funktioniert.
Das Problem ist hier, dass unsere Software in Eclipse integriert ist und der C++-Code als Plugin ausgefuehrt wird. Die umfangreiche Ausfuehrungsumgebung ist in Eclipse integriert. Ich kann zwar von aussen gdb auf den Plugin Executor attachen (was eine Formulierung...), dann fehlen mir aber die ganzen zusaetzlichen Sachen aus unserer Umgebung, die ich zum Debuggen brauche :(
Kompliziert. Mittlerweile machen wir groesstenteils printf()-Debugging, weils einfach "schneller" geht als mit CDT. Leider will uns Rogue Software keine Totalview-Lizenz verkaufen, warum auch immer :?:
Da die CDT-Code Indizierung manchmal unzuverlaessig arbeitet, bin ich mittlerweile auf vim+clang plugin umgestiegen. Beides selbst kompiliert im $HOME-Verzeichnis liegen, da Red Hat 5.8 etwas alt ist. CDT erkennt wenigstens meistens das die Code Files von ausserhalb geaendert wurden, so dass ich CDT nur noch fuer den Build benutze.

Immer dran denken: Performance ist egal. Stabilitaet >> Anwender/Entwickler Tools >> Execution Performance. Auch wenn 1s laengere Execution Performance mal eben $1-10 Mio kosten kann :o

Edit: Wenn Sublime auf Red Hat 5.8 laufen wuerde, wuerde ich das nehmen. Go To Anything ist absolut super! Egal ob zum Benutzen des OS oder zum Arbeiten :mrgreen:


Genug gejammert, zurueck zum Debuggen: Warum sind meine Noise-Werte besser als erwartet? :?:

@kaiserludi: Fuer den google C++ Style Guide gibt es ein beigelegtes Skript, mit dem man pruefen kann, ob sich der Code an den Style Guide haelt. Falls der Style Guide nicht passt, laesst sich auch schnell was mit clang zusammenbauen.

Re: Jammer-Thread

Verfasst: 22.05.2013, 21:17
von kaiserludi
@glassbear:
Danke, schau ich mir mal an.

Re: Jammer-Thread

Verfasst: 27.05.2013, 16:02
von antisteo
Meine Webseite sieht im IE6, IE7 und IE8 scheiße aus.
Erst ab IE9 wird HTML und CSS unterstützt.

Re: Jammer-Thread

Verfasst: 27.05.2013, 16:20
von Alexander Kornrumpf
antisteo hat geschrieben:Meine Webseite sieht im IE6, IE7 und IE8 scheiße aus.
Erst ab IE9 wird HTML und CSS unterstützt.
Wie ich schonmal an anderer Stelle erwähnte sieht sie im Firefox meiner bescheidenen Meinung nach ebenfalls nicht gut aus. Also falls dich das tröstet.

Re: Jammer-Thread

Verfasst: 30.05.2013, 18:21
von Krishty
movss xmm0,dword ptr [rbx+8]
movss xmm1,dword ptr [rbx+0Ch]
movss xmm2,dword ptr [rbx+2Ch]
mov r8,rcx
lea rdx,[rbp-70h]
lea rcx,[rbp-10h]
addss xmm2,dword ptr [r13]
movss dword ptr [rsp+30h],xmm0
movss xmm0,dword ptr [rbx+10h]
mov eax,dword ptr [rsp+30h]
mov dword ptr [rbp-70h],eax
movss dword ptr [rsp+38h],xmm0
movss xmm0,dword ptr [rbx+14h]
movss dword ptr [rsp+34h],xmm1
mov eax,dword ptr [rsp+34h]
mov dword ptr [rbp-6Ch],eax
mov eax,dword ptr [rsp+38h]
mov dword ptr [rbp-68h],eax
movss xmm1,dword ptr [rbx+18h]
movss dword ptr [rsp+3Ch],xmm0
movss xmm0,dword ptr [rbx+1Ch]
mov eax,dword ptr [rsp+3Ch]
mov dword ptr [rbp-64h],eax
movss dword ptr [rsp+44h],xmm0
movss xmm0,dword ptr [rbx+20h]
movss dword ptr [rsp+40h],xmm1
mov eax,dword ptr [rsp+40h]
mov dword ptr [rbp-60h],eax
mov eax,dword ptr [rsp+44h]
movss xmm1,dword ptr [rbx+24h]
movss dword ptr [rsp+48h],xmm0
movss xmm0,dword ptr [rbx+28h]
mov dword ptr [rbp-5Ch],eax
mov eax,dword ptr [rsp+48h]
movss dword ptr [rsp+4Ch],xmm1
movss xmm1,dword ptr [rbx+30h]
movss dword ptr [rsp+50h],xmm0
mov dword ptr [rbp-58h],eax
mov eax,dword ptr [rsp+4Ch]
addss xmm1,dword ptr [r13+4]
movss xmm0,dword ptr [rbx+34h]
movss dword ptr [rsp+54h],xmm2
mov dword ptr [rbp-54h],eax
mov eax,dword ptr [rsp+50h]
mov dword ptr [rbp-50h],eax
mov eax,dword ptr [rsp+54h]
addss xmm0,dword ptr [r13+8]
movss dword ptr [rsp+58h],xmm1
mov dword ptr [rbp-4Ch],eax
mov eax,dword ptr [rsp+58h]
movss dword ptr [rsp+5Ch],xmm0
mov dword ptr [rbp-48h],eax
mov eax,dword ptr [rsp+5Ch]
mov dword ptr [rbp-44h],eax
call Math::operator+<float> (0140013920h)
mov rcx,qword ptr [rax]
xorps xmm6,xmm6
mov qword ptr [rbp-40h],rcx
mov rcx,qword ptr [rax+8]
mov qword ptr [rbp-38h],rcx
mov rcx,qword ptr [rax+10h]
mov qword ptr [rbp-30h],rcx
mov rcx,qword ptr [rax+18h]
mov qword ptr [rbp-28h],rcx
mov rcx,qword ptr [rax+20h]
mov rax,qword ptr [rax+28h]
mov qword ptr [rbp-18h],rax
mov qword ptr [rbp-20h],rcx


Wisst ihr, was der Code macht? Ratet mal!

Der addiert drei Zahlen zu einer Matrix und ruft dann den Verknüpfungsoperator mit einer anderen Matrix auf.

Die 60 mov-Befehle die ihr da seht? Die sind für nichts da. Die schieben die Matrix zu einer Adresse zur anderen, um am Ende wieder in den Anfang zu schreiben. Der komplette Block sollte nur aus

addss xmm2,dword ptr [r13]
addss xmm1,dword ptr [r13+4]
addss xmm0,dword ptr [r13+8]
lea rdx,[rbp-70h]
lea rcx,[rbp-10h]
call Math::operator+<float> (0140013920h)


bestehen. Alles andere ist nutzlos. Und wenn ich von Hand inline, kommen auch exakt diese Befehle raus.

Und dann denken die Leute, es spräche für Java oder für C#, dass die fast an der Performance von C++ dran sind. Als wäre das was Positives! Nein, C++ ist einfach so arschlahm dass es keinen Unterschied macht weil die CPU ja sowieso den halben Nachmittag in load-hit-stores feststeckt!

Re: Jammer-Thread

Verfasst: 30.05.2013, 18:43
von antisteo
Krishty hat geschrieben:Alles andere ist nutzlos. Und wenn ich von Hand inline, kommen auch exakt diese Befehle raus.
Wieso kommt beim Hand-Inlining etwas anderes heraus als beim Maschinen-Inlining? Irgendwas machst du falsch - oder du benutzt den falschen Compiler.
Und die Benchmarks C++ gegen Java werden übrigens meist mit dem gcc gemacht, nicht mit deinem Visual-Teil.

Re: Jammer-Thread

Verfasst: 30.05.2013, 19:03
von Krishty
antisteo hat geschrieben:Wieso kommt beim Hand-Inlining etwas anderes heraus als beim Maschinen-Inlining? Irgendwas machst du falsch - oder du benutzt den falschen Compiler.
Weil da nicht 30 Jahre lang Informatikprofessoren am Compiler geschraubt haben, sondern komplexitätsbewusste Existenzen wie ich, die Fehler nur beheben, wenn sie sie vollständig begriffen haben. Zum Glück keine ahnungslosen Klugscheißer, die meinen, jeder könnte sich mal schnell da dransetzen und Register Coloring revolutionieren weil ihm ein paar Kompilate nicht passen – das war ja schon bei GCC so fick-fack-fantastisch, als ein Hobby-Mensch die Aliasing Analysis verfasst hat um seinen Code schneller zu machen und sie erst fünf Jahre später durch subtile Fehler bemerkt haben, dass sie die wegschmeißen können :)

Jetzt lass mich hier weiterhin alle Interessierten daran erinnern was passiert, wenn man bestimmte bekannte Eigenheiten nicht beachtet, bis die Leute, die was davon verstehen und dafür zuständig sind, eine Lösung liefern, damit die nächste Visual Studio-Version wieder 15 % schnelleren Maschinentext erzeugt statt bei euch Herzinfarkte auszulösen weil euer Weltbild vom alles richtenden Compiler zusammenbricht sobald ihr ins Kompilat guckt.

Re: Jammer-Thread

Verfasst: 30.05.2013, 22:40
von antisteo
Mit LLVM-IR wäre das nicht passiert.
(bzw zum Jammern: der Chinese in unserem LLVM-Projekt an der Uni kopiert einfach nur den Beispielcode in seinen Code rein und committet das)

Re: Jammer-Thread

Verfasst: 31.05.2013, 07:53
von Krishty
antisteo hat geschrieben:Mit LLVM-IR wäre das nicht passiert.
Was? Visual C++’ schlechte Kopien, GCCs kaputte Aliasing-Analyse, oder die chinesischen Plagiate in eurem LLVM?

Re: Jammer-Thread

Verfasst: 31.05.2013, 12:44
von Schrompf
GRAAAH. Diese verdammte Baufirma hat soeben zum dritten Mal seit Bestehen der Monster-Baustelle das Wasser abgedreht, ohne vorher Bescheid zu sagen. Sind die nicht verpflichtet, irgendeinen Aushang in jedem Haus zu machen? Das geht mir barbarisch auf den Zeiger.

Und nein, es hat NICHTS mit Kaffeemangel zu tun, unter dem ich jetzt natürlich auch leide.

Re: Jammer-Thread

Verfasst: 31.05.2013, 13:43
von antisteo
Krishty hat geschrieben:
antisteo hat geschrieben:Mit LLVM-IR wäre das nicht passiert.
Was? Visual C++’ schlechte Kopien, GCCs kaputte Aliasing-Analyse, oder die chinesischen Plagiate in eurem LLVM?
Nein.
Die erste Zeile meines Kommentars war wieder eine meiner Standardantworten auf dein Gejammere.

Re: Jammer-Thread

Verfasst: 31.05.2013, 15:07
von Schrompf
antisteo hat geschrieben:Die erste Zeile meines Kommentars war wieder eine meiner Standardantworten auf dein Gejammere.
Wenn Du jetzt schon selbst begriffen hast, dass Du nichts Hilfreiches oder auch nur Neues beitragen kannst, dann lass doch bitte den Kommentar gleich ganz weg. Betrachte das als offizielle Warnung. Ich hatte Dich schonmal gesperrt, und habe auch keine Probleme, das wieder zu tun. In Anbetracht Deiner bisherigen Beitrage ginge da nichts verloren, was für dieses Forum von Wert wäre.

Re: Jammer-Thread

Verfasst: 31.05.2013, 16:00
von antisteo
Schrompf hat geschrieben:
antisteo hat geschrieben:Die erste Zeile meines Kommentars war wieder eine meiner Standardantworten auf dein Gejammere.
Wenn Du jetzt schon selbst begriffen hast, dass Du nichts Hilfreiches oder auch nur Neues beitragen kannst, dann lass doch bitte den Kommentar gleich ganz weg. Betrachte das als offizielle Warnung. Ich hatte Dich schonmal gesperrt, und habe auch keine Probleme, das wieder zu tun. In Anbetracht Deiner bisherigen Beitrage ginge da nichts verloren, was für dieses Forum von Wert wäre.
Ich wüsste auch nicht, welchen Nutzen ich aus Rumgejammere ziehen könnte, wenn derjenige, der jammert, niemals eine Lösung für sein Problem ausprobieren wird. Sperre mich ruhig, das zeigt vor allem deine Stärke als Moderator.

Re: Jammer-Thread

Verfasst: 31.05.2013, 16:05
von Biolunar
Schrompf hat geschrieben:
antisteo hat geschrieben:Die erste Zeile meines Kommentars war wieder eine meiner Standardantworten auf dein Gejammere.
Wenn Du jetzt schon selbst begriffen hast, dass Du nichts Hilfreiches oder auch nur Neues beitragen kannst, dann lass doch bitte den Kommentar gleich ganz weg. Betrachte das als offizielle Warnung. Ich hatte Dich schonmal gesperrt, und habe auch keine Probleme, das wieder zu tun. In Anbetracht Deiner bisherigen Beitrage ginge da nichts verloren, was für dieses Forum von Wert wäre.
Jammern über Jammer, also quasi Metagejammer, ist nun verboten? Okay … !?

Re: Jammer-Thread

Verfasst: 31.05.2013, 16:09
von Schrompf
Biolunar hat geschrieben:Jammern über Jammer, also quasi Metagejammer, ist nun verboten? Okay … !?
Nein. Nur wenn dreimal das Gleiche kommt, obwohl der Hinweis schon beim ersten Mal ausreichend diskutiert wurde.

Aber wir könnten für diesen Thread eine Regel aufstellen: hier muss in jedem Beitrag ein Jammer drin sein. Auch bei Beileidsbekundungen muss der Vollständigkeit halber ein Eigen-Ungemach vorhanden sein.

Re: Jammer-Thread

Verfasst: 31.05.2013, 16:14
von Krishty
Biolunar hat geschrieben:Jammern über Jammer, also quasi Metagejammer, ist nun verboten? Okay … !?
Nö – aber Trollen ist verboten.
Schrompf hat geschrieben:Aber wir könnten für diesen Thread eine Regel aufstellen: hier muss in jedem Beitrag ein Jammer drin sein. Auch bei Beileidsbekundungen muss der Vollständigkeit halber ein Eigen-Ungemach vorhanden sein.
Och ich weiß nicht. Ich poste hier gern, was mir in der IT gerade so zu denken gibt. Ich müsste dann einen Krishtys Tagebuch-Thema aufmachen oder so (ich würde es „50 Shades of mov“ nennen); und die einzige Wirkung wäre, dass sich unsere gut-zu-wissen-Beiträge noch schlechter auffindbar zerstreuen. Zumal ich es bedenklich fände, wenn ZFX einen 224-Seiten-Jammer-Thread hätte, der wirklich nur voll Gejammer wäre.

Re: Jammer-Thread

Verfasst: 01.06.2013, 10:36
von Krishty
Wer für seine Aufsätze Ausführungszeiten in Nanosekunden misst, dem muss doch komplett ins Hirn geschissen worden sein. Ja dann hat dieser tolle Memory Manager also 2002 auf einem Pentium 4 16 ns gebraucht … und heute? AAARGH

Re: Jammer-Thread

Verfasst: 01.06.2013, 11:49
von joggel
Ich müsste dann einen Krishtys Tagebuch-Thema aufmachen oder so (ich würde es „50 Shades of mov“ nennen);
"Krishtys holy Log of Jammern" :D

Re: Jammer-Thread

Verfasst: 01.06.2013, 11:54
von Krishty
Bwaaaaah Windows 7 schreibt während des Bootens bereits 50 MiB auf die Platte. Was ist das alles? Warum?

Und warum kann sich Virtual PC nicht merken, wo ich gerade war? Jedes Mal, wenn ich einen Assistenten starte, muss ich mich durch 100 Ordner hangeln um wieder da hinzukommen, wo ich die ganze Zeit arbeite.

Aber wenn in dem Namen einer VM 2000 vorkommt, werden alle Voreinstellungen automatisch für Windows 2000 ausgelegt. JA DAS KÖNNT IHR PLÖTZLICH

Re: Jammer-Thread

Verfasst: 01.06.2013, 11:58
von Krishty
Ooooh wenn das System unter Last ist, merkt man erstmal, welchen Programmen man trauen kann.

JDownloader. Brauche ich ja leider für meine Raubkopien. Am J erkennt man, dass das alles Java ist. Und woran erkennt man es noch? Z.B. daran, dass das Markieren eines Listeneintrags (ohne was damit zu machen!) 2 Sekunden lang die Auslagerungsdatei beschäftigt, wenn der Speicherstand vorher niedrig war. 2 Sekunden bei 20 MiB/s, das macht 40 MiB Arbeitssatz um einen Eintrag zu markieren. Warum? Na ich denke da werden dann erstmal die Virtual Function Tables von 20 beteiligten Klassen bemüht, die wild im Speicher verstreut sind; dann springt der Garbage Collector an, der natürlich auch in der Auslagerunsdatei liegt; … da bin ich Fan!

LEBENSLANGES COMPUTERVERBOT FÜR EUCH JAVA-VOLLVERSAGER

Re: Jammer-Thread

Verfasst: 01.06.2013, 12:05
von joggel
Mich nervt es was die Motivation doch für eine launische Dirne ist.
Draußen und unterwegs noch nachgedacht was ich programmieren könnte. War voller Tatendrang.
Komme zu Hause an, schalte meinen PC an, setze mich an den Rechner und..... nix!!! Meine ganze Motivation ist verschwunden.
Hoffe die kommt bald wieder...

Re: Jammer-Thread

Verfasst: 01.06.2013, 12:07
von Krishty
Jetzt zu einem meiner Lieblingsprogramme (ich wettere ja nicht nur gegen Sachen, die ich hasse): 7-Zip.

Drag'n'Drop aus einem Archiv zu einem Ordner bewirkt: Die Dateien werden ins temporäre Verzeichnis extrahiert, und dann zum Zielordner kopiert.

Kopiert.

Statt verschoben.

Das dauert alles doppelt so lange und verbraucht doppelt so viel Speicherplatz. WTF?! Und warum überhaupt das temporäre Verzeichnis der Systemplatte, und nicht eines auf dem Zieldatenträger? wtfwtfwtf …

Re: Jammer-Thread

Verfasst: 01.06.2013, 12:13
von joggel
Warum stürzt Winamp ab, wenn ich mein Smartfon an den PC anschliese :cry:

Re: Jammer-Thread

Verfasst: 01.06.2013, 13:02
von Krishty
Windows Virtual PC (der Nachfolger von Microsoft Virtual PC) ist scheiße. Ich habe selten so einen Haufen Dreck gesehen. Alle Einstellungen sind maximal versteckt; seine VMs kriegt man nur durch XML-Pfrickelei importiert, und getarnt ist das Ganze als Explorer-Fenster. Außerdem ist es arschlahm und voll von unnützem Zeug, das man nicht braucht.

Die Auto-Vervollständigung von VS 2012 scheint mir immer schlechter zu werden. Ich bin fest überzeugt, dass sie seit Update 1 restriktiver wurde. Ich weiß nicht genau, was sie geändert haben, aber die #include-Auflösung kann mittlerweile nicht mehr erraten, dass mit WinAPI_RawInput.hpp (Unterstrich!) eigentlich WinAPI RawInput.hpp (Leerzeichen!) gemeint ist und spuckt mir einfach alles aus, was mit W anfängt. Ich bin mir fast sicher, dass sie eine Sonderbehandlung für Unterstriche drinhaben, damit einem Namespaces nicht so STL-verschmutzt vorkommen oder so.

Re: Jammer-Thread

Verfasst: 01.06.2013, 14:07
von Krishty
lul

ich habe gerade Find mit Find and Replace verwechselt und alle Backslashes aus dem gesamten Projekt gelöscht

… passiert den besten. Ordner, Zeilenumbrüche, mehrzeilige Makros, und Escape-Codes braucht doch eh keine Sau.

Re: Jammer-Thread

Verfasst: 01.06.2013, 15:26
von Krishty
http://www.exploringbinary.com/incorrect-round-trip-conversions-in-visual-c-plus-plus/ hat geschrieben:I’ve previously discovered that Visual Studio makes incorrect decimal to floating-point conversions, and that Microsoft is OK with it — at least based on their response to my now deleted bug report.
Tjaja

Re: Jammer-Thread

Verfasst: 03.06.2013, 05:51
von Krishty
Ich programmiere an einem uralten Computer-Tisch. Schon meine Vorfahren haben davor ihren C64 bedient. Jetzt wollte ich eben einen Fleck wegwischen und da löst das Putzmittel die Farbe. WTF?!

Re: Jammer-Thread

Verfasst: 03.06.2013, 17:58
von kaiserludi
Krishty hat geschrieben:Ich programmiere an einem uralten Computer-Tisch. Schon meine Vorfahren haben davor ihren C64 bedient. Jetzt wollte ich eben einen Fleck wegwischen und da löst das Putzmittel die Farbe. WTF?!
Wenn deine Urenkel mal ihre Urenkel in die historische Bedeutung des Tisches einweihen werden, dann könnte sich das so anhören: "Schon mein Urgroßvater Krishty, der einst hier an dieser Stelles des Tisches die Farbe entfernt hat, hat an diesem Tisch Code geschrieben, der die Welt veränderte, damals, als RAM-Größen noch in GB angegeben wurden!" :mrgreen:

Re: Jammer-Thread

Verfasst: 03.06.2013, 18:38
von antisteo
kaiserludi hat geschrieben:
Krishty hat geschrieben:Ich programmiere an einem uralten Computer-Tisch. Schon meine Vorfahren haben davor ihren C64 bedient. Jetzt wollte ich eben einen Fleck wegwischen und da löst das Putzmittel die Farbe. WTF?!
Wenn deine Urenkel mal ihre Urenkel in die historische Bedeutung des Tisches einweihen werden, dann könnte sich das so anhören: "Schon mein Urgroßvater Krishty, der einst hier an dieser Stelles des Tisches die Farbe entfernt hat, hat an diesem Tisch Code geschrieben, der die Welt veränderte, damals, als RAM-Größen noch in GB angegeben wurden!" :mrgreen:
REGELVERSTOß! du musst in jedem Beitrag jammern, auch wenn du Mitleid bekundest.


Mein Jammer:
Ich bin total fertig. Gerade mitbekommen, dass meine linke Sehstärke ständig schwankt.