Seite 86 von 252

Re: Jammer-Thread

Verfasst: 20.09.2012, 15:59
von CodingCat
kaiserludi hat geschrieben:Irgendein Template führt zu einem fürchterlichen Code Bloat in in einem meiner Sourcefiles, aber ich weiß nicht, welches Template das Problem ist und bei allen, die ich im Verdacht hatte, hat ein Durchzählen der Instantierungen (globale Variable als Counter und im Template eine static dummy Variable, die mit dem return Value einer Funktion initalisiert wird, welche den globalen Counter inkrementiert) nur seh überschauliche Zahlen gegeben, die nicht das Problem sein können.
Bist du sicher, dass die statische Variable auch immer instanziiert wurde?
C++11 hat geschrieben:Unless a member of a class template or a member template has been explicitly instantiated or explicitly
specialized, the specialization of the member is implicitly instantiated when the specialization is referenced
in a context that requires the member definition to exist; in particular, the initialization (and any associated
side-effects) of a static data member does not occur unless the static data member is itself used in a way
that requires the definition of the static data member to exist
kaiserludi hat geschrieben:Noch igendwer Ideen, wie ich mit möglichst wenig Aufwand raus finde, welches Template wie oft instantiiert wird?
Eventuell hilft dir hier das Tool Sizer, welches Krishty in seinem Mikrooptimierungs-Log genannt hat.

Re: Jammer-Thread

Verfasst: 20.09.2012, 16:13
von kaiserludi
CodingCat hat geschrieben:
kaiserludi hat geschrieben:Irgendein Template führt zu einem fürchterlichen Code Bloat in in einem meiner Sourcefiles, aber ich weiß nicht, welches Template das Problem ist und bei allen, die ich im Verdacht hatte, hat ein Durchzählen der Instantierungen (globale Variable als Counter und im Template eine static dummy Variable, die mit dem return Value einer Funktion initalisiert wird, welche den globalen Counter inkrementiert) nur seh überschauliche Zahlen gegeben, die nicht das Problem sein können.
Bist du sicher, dass die statische Variable auch immer instanziiert wurde?
C++11 hat geschrieben:Unless a member of a class template or a member template has been explicitly instantiated or explicitly
specialized, the specialization of the member is implicitly instantiated when the specialization is referenced
in a context that requires the member definition to exist; in particular, the initialization (and any associated
side-effects) of a static data member does not occur unless the static data member is itself used in a way
that requires the definition of the static data member to exist
kaiserludi hat geschrieben:Noch igendwer Ideen, wie ich mit möglichst wenig Aufwand raus finde, welches Template wie oft instantiiert wird?
Eventuell hilft dir hier das Tool Sizer, welches Krishty in seinem Mikrooptimierungs-Log genannt hat.
Hmm, ich habe extra noch einen nicht statischen Member, den ich im Konstrukor mit dem statischen initialsiere, umd darüber sicher zu stellen, dass die Existenz des statischen tatsächlich benötigt wird.
Das Tool schau ich mir mal an.

@Schrompf:
Noch nicht. Ich habe gegeogelt, ob ich irgendwie übers .obj File daran komme, aber nichts fruchtbares raus bekommen. In die genannten könnte ich aber auch mal schauen, ja.

Danke euch beiden schon mal.

Re: Jammer-Thread

Verfasst: 20.09.2012, 16:58
von kaiserludi
Hmm, wie bekomme ich denn raus, welche UUID ich für msdia100.dll eintragen muss und was soll ich in Zeile 594 ergänzen? (bezieht sich auf Krishtys von CodingCat verlinkten Post)

Re: Jammer-Thread

Verfasst: 20.09.2012, 17:53
von kaiserludi
Hmm, scheint auch mit den vorhandenen Binaries ohne Neukompilierung für VS 2010 trotzt VS 2010 generierer zur untersuchender .exe zu funzen und der Output ist auf jeden Fall schonmal hilfreich :)

Re: Jammer-Thread

Verfasst: 20.09.2012, 18:59
von eXile
Das hier funktioniert mit dem GCC, aber nicht mit Visual Studio 2010.

Nachtrag: Eh, was zum Geier:

Code: Alles auswählen

template <typename T>
auto GetList() -> decltype(T());
Funktioniert nicht, und gibt die Fehlermeldung:

Code: Alles auswählen

main.cpp(11): error C2785: ''unknown-type' GetList(void)' and 'MyStruct GetList(void)' have different return types
          main.cpp(5) : see declaration of 'GetList'
          main.cpp(8) : see declaration of 'GetList'
main.cpp(11): error C2912: explicit specialization; 'MyStruct GetList<MyStruct>(void)' is not a specialization of a function template
Dahingegen:

Code: Alles auswählen

template <typename T>
auto GetList() -> T;
Funktioniert.

Was soll ich davon nun halten? :|

Nachtrag: Auch in Visual Studio 2012 mit Fehlern.
Nachtrag: In Clang keine Fehler.

Re: Jammer-Thread

Verfasst: 20.09.2012, 19:55
von Krishty
Clangs Gleitkommaoptimierungen sind verschiedenen Quellen nach noch schlechter als die von Visual C++.

Der Intel Compiler hingegen scheint nicht nur in Benchmarks mit 200 % Gleitkommaleistung zu protzen, sondern das tatsächlich auch in der Praxis zu bringen, plus Extras, bei denen es mir lauwarm die Schenkel runterläuft:
Amongst the logs about which loops in my test project were or weren’t vectorized (and why not), it also kicked out data locality suggestions like this:
(DTRANS) Reordering the fields of the structure ‘FluidGrid’ will improve data locality. Suggested field order: ‘m_fluidGrid, m_current, m_fluidVecX, m_fluidVecY, m_fluidVecZ, m_flags, m_particles, m_particlesPrev, m_sliceAxis, m_sliceIndex, m_renderParticles, m_mtRand’.
[VERIFY] The suggestion is based on the field references in the current compilation. Please make sure that the restructured code satisfies the original program semantics.

(DTRANS) Split the structure ‘LineBuffer’ into two parts to improve data locality. Frequently accessed fields are ‘m_offlineBuffer, m_curLineCount’;
Bild

Aber irgendwie sagt mir mein Gewissen, dass es sinnvoller wäre, Clang beim Wachsen zu helfen als Intel das Geld in den Hintern zu pusten.

Andererseits lässt sich ICC nahtlos in Visual Studio integrieren und ist nach der Installation sofort bereit. Clang muss ich erst kompilieren. Das klingt für mich grundsätzlich nach ich will garnicht, dass du mich nutzt.

Re: Jammer-Thread

Verfasst: 20.09.2012, 20:35
von Krishty
WTF hatten die nicht für Visual Studio 2012 geprahlt, dass sie die Installationsdauer so verkürzt haben, indem sie nur noch das Nötigste installieren?!

ich installiere hier die Expressversion und wurde nicht einmal gefragt, was ich alles haben will

oder habe ich irgendwo eine Kachel übersehen?

und mein Provider schickt schon Warnungen, dass meine Verbindung ihr Tageslimit erreicht

Bild

WTF Microsoft

Im Ernst, habe ich was falsch gemacht? Soll ich abbrechen und nochmal ganz genau nach erweiterten Optionen Ausschau halten oder wird der ganze Scheiß dann nochmal runtergeladen?!
  • Windows Software Development Kit for Windows Store Apps DirectX x86 Remote?!?
     
  • WTF
     
  • WTFdows WTFware DeWTF Kit for WTFStore WTFs DirectWTF WTF86 WTmote
Wofür soll das gut sein

WTF WTF WTF

Re: Jammer-Thread

Verfasst: 21.09.2012, 12:43
von antisteo
Krishty hat geschrieben:Clang muss ich erst kompilieren. Das klingt für mich grundsätzlich nach ich will garnicht, dass du mich nutzt.
Clang ist doch in den Paketquellen, was musst du da noch kompilieren?

Re: Jammer-Thread

Verfasst: 21.09.2012, 13:24
von Biolunar
Windows hat Paketquellen? Ist mir neu.

Re: Jammer-Thread

Verfasst: 21.09.2012, 13:39
von Sternmull
Aber im Ernst: Clang unter Windows mit VS zu bauen war das letzte mal als ich es gemacht hab vollkommen unproblematisch. Projektdateien lagen glaube ich auch dabei (Oder musste ich erst noch CMake aufrufen..?). Jedenfalls hab ich mich dabei nicht überanstrengt :)

Re: Jammer-Thread

Verfasst: 21.09.2012, 23:54
von antisteo
Biolunar hat geschrieben:Windows hat Paketquellen? Ist mir neu.
Windows? Gibts diesen Blödsinn immer noch?

Jammer: Die Personensuche bei Skype unter Windows funktioniert nicht. Ich kann den Suchbegriff in 4 unterschiedlichen Feldern eingeben. 3 Felder davon geben keine Suchtreffer und das eine Feld immer exakt 200 Treffer. Linux gebootet, dort hat der Skype-Client keine Werbung überall, alles übersichtlicher, nur ein Eingabefeld und der Skype-Name wurde auf Anhieb gefunden. Wie können 2 Clients von ein und derselben Software so unterschiedlich sein?

Re: Jammer-Thread

Verfasst: 22.09.2012, 06:57
von Jonathan
Manchmal gehen die einfachsten Dinge schief:

Code: Alles auswählen

	auto Text=QString::fromStdString(str);
Oh, natürlich ist str ein vollkommen gültiges String Objekt...
http://connect.microsoft.com/VisualStud ... d-qt-4-7-0

Ja, es liegt vermutlich an Dr memory und dass ich die Debugversion mit /MD statt /MDd kompiliert habe. Nur dass ich keine Compilermeldungen kriegen, weil Qt ne dll ist und nicht statisch linkt oder so. Hat mich ganz schön Zeit und Nerven gekostet herauszufinden, dass es DARAN liegt.

Re: Jammer-Thread

Verfasst: 22.09.2012, 11:41
von Krishty
Sternmull hat geschrieben:Aber im Ernst: Clang unter Windows mit VS zu bauen war das letzte mal als ich es gemacht hab vollkommen unproblematisch. Projektdateien lagen glaube ich auch dabei (Oder musste ich erst noch CMake aufrufen..?). Jedenfalls hab ich mich dabei nicht überanstrengt :)
Ja; das habe ich von anderen auch gehört. Ist mir aber scheißegal. Es geht ums Prinzip: Software muss sofort laufen. Es ist vorbildlich, wenn Quelltext mitgeliefert wird, aber selber zu kompilieren sollte eine Option bleiben. Wenn ich einen Compiler selber kompilieren muss, erinnert mich das an die Telekommunikationsanbieter, denen ich eine E-Mail schreiben soll, wenn mein Internet nicht mehr funktioniert: Es ist absurd.

Re: Jammer-Thread

Verfasst: 22.09.2012, 12:34
von kaiserludi
Krishty hat geschrieben:
Sternmull hat geschrieben:Aber im Ernst: Clang unter Windows mit VS zu bauen war das letzte mal als ich es gemacht hab vollkommen unproblematisch. Projektdateien lagen glaube ich auch dabei (Oder musste ich erst noch CMake aufrufen..?). Jedenfalls hab ich mich dabei nicht überanstrengt :)
Ja; das habe ich von anderen auch gehört. Ist mir aber scheißegal. Es geht ums Prinzip: Software muss sofort laufen. Es ist vorbildlich, wenn Quelltext mitgeliefert wird, aber selber zu kompilieren sollte eine Option bleiben. Wenn ich einen Compiler selber kompilieren muss, erinnert mich das an die Telekommunikationsanbieter, denen ich eine E-Mail schreiben soll, wenn mein Internet nicht mehr funktioniert: Es ist absurd.
oder an die, bei denen man sich nur online einen Internetanschluss bestellen kann :lol:
Bin da ganz deiner Meinung: Es ist einfach extrem nutzerfeindlich, wenn der Nutzer sich die Software erst selbst kompilieren MUSS, weil keine Binaries mitgeliefert werden.

Re: Jammer-Thread

Verfasst: 22.09.2012, 18:43
von antisteo
kaiserludi hat geschrieben:Bin da ganz deiner Meinung: Es ist einfach extrem nutzerfeindlich, wenn der Nutzer sich die Software erst selbst kompilieren MUSS, weil keine Binaries mitgeliefert werden.
Nochmal: Mein Distributor liefert mir Binaries. Dann hast du einen schlechten Distributor und solltest umsteigen.

Re: Jammer-Thread

Verfasst: 22.09.2012, 19:13
von dot
antisteo hat geschrieben:
kaiserludi hat geschrieben:Bin da ganz deiner Meinung: Es ist einfach extrem nutzerfeindlich, wenn der Nutzer sich die Software erst selbst kompilieren MUSS, weil keine Binaries mitgeliefert werden.
Nochmal: Mein Distributor liefert mir Binaries. Dann hast du einen schlechten Distributor und solltest umsteigen.
Nochmal: Es geht hier nicht um Linux.

Re: Jammer-Thread

Verfasst: 23.09.2012, 10:42
von Sternmull
Jetzt hört doch auf zu jammern :) Ich seh grad das auch experimentelle Windows-Binaries angeboten werden: Siehe hier und klick auf "Experimental Clang Binaries for Mingw32/x86".

Re: Jammer-Thread

Verfasst: 23.09.2012, 12:19
von kaiserludi
Sternmull hat geschrieben:Jetzt hört doch auf zu jammern :)
Aber dann wird doch dieser Thread überflüssig :cry:

Re: Jammer-Thread

Verfasst: 23.09.2012, 12:28
von Krishty
Tatsächlich :) Als ich es das letzte Mal versucht hatte, gab es nur Win32-Binaries, die zwei Minor Releases hinterherhinkten.

Gejammer: Ich habe meine Computermaus vergessen. Ich darf also drei Tage lang alles via Tastatur steuern. Diese Freude

Re: Jammer-Thread

Verfasst: 23.09.2012, 19:16
von antisteo
Krishty hat geschrieben:Ich darf also drei Tage lang alles via Tastatur steuern. Diese Freude
Gibt es Dinge, die du nicht mit der Maus steuern kannst?
Mir fallen auf Anhieb schlecht geschriebene Java-Anwendungen, Flash-Seiten und Spiele ein.

Re: Jammer-Thread

Verfasst: 23.09.2012, 20:06
von Krishty
Instant Messenger (ich bin noch nicht darauf gekommen, blinkende Tray-Symbole mit der Tastatur anzusteuern) und YouTube (spontan bestimmte Musik hören ist also schwer).

Sonst bin ich positiv überrascht, wie gut alles funktioniert. Man merkt wirklich, wie viel Wert Microsoft auf Barrierefreiheit legt; man merkt aber auch, welche Anwendungen nicht damit getestet wurden (wenn etwa die Auswahl kreuz und quer durch die Buttons hüpft).

Trotzdem ist alles langsamer. (Um hier ins Antwortfenster zu kommen, habe ich über zehn Sekunden rumtippen müssen.) Da ich auch gerade an sowas wie einem Spiel arbeite, und unbedingt Maussteuerung voraussetze, ist Testen erstmal Essig. Die Tastaturmaus, die Windows in der Erleichterten Bedienung einsetzt, ist auch nur enorm begrenzt einsetzbar.

Re: Jammer-Thread

Verfasst: 23.09.2012, 23:03
von Helmut
Krishty hat geschrieben:Instant Messenger (ich bin noch nicht darauf gekommen, blinkende Tray-Symbole mit der Tastatur anzusteuern) und YouTube (spontan bestimmte Musik hören ist also schwer).
Tray Icons kann man mit Win, Esc und Tab drücken bis das Icon markiert ist erreichen. (Zumindest wenn du noch nicht Win8 benutzt). Bei Youtube ist man leider tatsächlich auf die Maus angewiesen. Es funktioniert nicht mal Strg+Tab um das Tab zu verlassen wenn das Video den Focus hat... :(

Re: Jammer-Thread

Verfasst: 25.09.2012, 15:10
von CodingCat
Gerade Visual Studio 2012 installiert. Die neuen IDE-Features wie Floating Preview Tab und integrierter Class/Entity-Solution-Explorer sind großartig. Aber WARUM in Gottes Namen dieses schlimmste IDE-Layout aller Zeiten? In diesem Brei von unlesbaren Icons und unstrukturiertem Text kann ich schlichtweg nicht arbeiten.

Re: Jammer-Thread

Verfasst: 25.09.2012, 15:16
von dot
Ich verwends jetzt schon seit einigen Monaten und muss sagen: Man gewöhnt sich dran, ich finds mittlerweile eigentlich sogar ziemlich nice (sobald die ALL CAPS abgedreht sind, weil die gehn gar nicht)...

Essentiell: http://www.richard-banks.org/2012/06/ho ... 2-all.html
Nett: http://visualstudiogallery.msdn.microso ... 7d4e7ace05

Re: Jammer-Thread

Verfasst: 25.09.2012, 15:20
von Sternmull
Klingt so als hätten sie ihren Stil der Office-Produkte beibehalten... bei denen kann ich den Icon-Überladenen Toolbars auch nur mit Unverständis entgegenblicken.

Re: Jammer-Thread

Verfasst: 25.09.2012, 15:36
von CodingCat
dot hat geschrieben:Ich verwends jetzt schon seit einigen Monaten und muss sagen: Man gewöhnt sich dran, ich finds mittlerweile eigentlich sogar ziemlich nice (sobald die ALL CAPS abgedreht sind, weil die gehn gar nicht)...

Essentiell: http://www.richard-banks.org/2012/06/ho ... 2-all.html
Nett: http://visualstudiogallery.msdn.microso ... 7d4e7ace05
Danke, jetzt finde ich mich schon wesentlich besser zurecht. Den Blue Theme aus der Extension im zweiten Link kann ich allen Mitlesern empfehlen, tatsächlich sehr ähnlich zu Visual Studio 2010. Damit die Titelleiste nicht so blöd mit dem Menü vermatscht, einfach den Theme unter "Theme/Customize Colors" anpassen. Die relevanten Schlüssel heißen "Enviroronment/MainWindowActiveCaption" und "Environment/MainWindowInactiveCaption". Ich habe beide auf FFDAE1ED gesetzt.
Sternmull hat geschrieben:Klingt so als hätten sie ihren Stil der Office-Produkte beibehalten... bei denen kann ich den Icon-Überladenen Toolbars auch nur mit Unverständis entgegenblicken.
Nein, selbst das Office-Design ist ein Segen dagegen. Oh shit, das neue Office macht eine ähnliche Entwicklung. Usability to the min!

Re: Jammer-Thread

Verfasst: 25.09.2012, 16:15
von CodingCat
Es gibt noch keine Power Productivity Tools für VS 2012. :-/
Qual der Wahl: Alte Features oder neue Features
Qual der Wahl: Alte Features oder neue Features
Nachtrag: Die neuen Productivity Tools kommen wohl schon Anfang Oktober.

Re: Jammer-Thread

Verfasst: 25.09.2012, 16:18
von dot
Und ich wär mir nicht so sicher, dass es die jemals geben wird...iirc wurde zumindest bei der Build Conference 2011 der Eindruck vermittelt, als wären die meisten Features der Power Productivitiy Tools in VS 2012 fix eingebaut...

Re: Jammer-Thread

Verfasst: 25.09.2012, 17:53
von eXile
Doch, doch, wird es geben. Hier unter Workarounds steht auch eine Anleitung, wie man die Seitenleiste bereits jetzt mit Visual Studio 2012 benutzen kann. Ich will eher endlich Parallel Nsight für Visual Studio 2012. :evil:

Eure Posts sind alle sowas von alt August 2012. :)

Re: Jammer-Thread

Verfasst: 25.09.2012, 18:17
von CodingCat
eXile hat geschrieben:Doch, doch, wird es geben. [...] Eure Posts sind alle sowas von alt August 2012. :)
CodingCat hat geschrieben:Nachtrag: Die neuen Productivity Tools kommen wohl schon Anfang Oktober.
:P