Seite 116 von 252

Re: Jammer-Thread

Verfasst: 07.07.2013, 00:38
von Krishty
Artificial Mind hat geschrieben:Warum Jammer-Thread?
Ich kann meine Bachelorarbeit nicht vernünftig evaluieren weil ich 700MB/s (buffered filestream) bis 3.2GB/s (unbuffered filestream) Lesegeschwindigkeit von meiner HDD bekomme.
Ich habe für meine Benchmarks immer den Cache geflusht indem ich den Datensatz größer als dem RAM gemacht und nur das Ende verwertet habe. Ich rate davon ab, den Cache durch Kopieren großer Dateien zu flushen – das spült nämlich leider unter Windows auch alle Seiten aller Prozesse raus, die während des Kopiervorgangs nicht benutzt wurden. Also so übel, dass danach ein Rechtsklick im Explorer erstmal drei Sekunden von der HDD lesen muss. (Jedenfalls hier unter Windows 7. Unter Vista war es noch schlimmer. Windows 8? KA.)

Re: Jammer-Thread

Verfasst: 07.07.2013, 09:35
von Krishty
Bah bei virtuellen Maschinen hat man echt nur die Wahl zwischen Pest und Cholera. Microsofts Virtual PC ist hoffnungslos veraltet und wird wohl nicht mehr weiterentwickelt. Oracle VM VirtualBox ist … von Oracle. (Sicherungspunkte zerstören immer VMs. Als wenn der Speichern-Knopf dein Dokument löscht.) Und VMWare ist so aufgeblasenes Business-Marketing-Blabla, dass ich die Funktionsliste ihrer „Lösung“ erst garnicht finde sondern nur Wolkendiagramme. AAAAH

Re: Jammer-Thread

Verfasst: 07.07.2013, 11:27
von dot
Schonmal einen Blick auf Hyper-V geworfen? Kommt bei Windows 8 sogar in der Box mit... ;)

Re: Jammer-Thread

Verfasst: 07.07.2013, 11:39
von Krishty
Leider ist Windows 8 genau das, was ich emuliere :-(

Re: Jammer-Thread

Verfasst: 07.07.2013, 11:43
von Sternmull
Ich verwende VirtualBox schon seit einer ganzen Weile. Hab damit noch angefangen bevor es Oracle gehörte... aber ehrlich ist mir auch egal wer da seinen Namen drauf schreibt. Bisher hatte ich mit all den VMs (Windows XP/Vista/7/8, Debian, FreeBSD) auf verschiedenen Hosts (Windows 7, FreeBSD, Debian) keine Probleme, auch die Snapshots haben immer gemacht was sie sollen. Das einzige Fettnäpfchen in das ich mal reingetreten bin war das ich unter Windows 7 die Installation einer neueren Version aus dem Firefox-Download-Dialog heraus gestartet hab... das hatte zur Folge das der UAC-Dialog ausblieb und die Installation unvollständig war (z.B. hat die COM-Registrierung danach gefehlt). Aber das ist wohl eher die Schuld von Firefox gewesen. Abgesehen davon hat mich VirtualBox aber bisher vollkommen überzeugt.

Re: Jammer-Thread

Verfasst: 07.07.2013, 11:46
von Krishty
Hm. Also ich habe zwei Stunden gebraucht um eine Datei vom Windows-7-Wirt zu einem Windows-8-Gast zu kopieren – zuerst, weil die Zeigerintegration nicht funktionieren wollte; dann habe ich vergeblich Ziehen/Ablegen in allen möglichen Varianten probiert; dann Kopieren/Einfügen; dann die Add-Ons installiert; und am Ende habe ich es über einen freigegebenen Ordner machen müssen :( Ich war so blöd, dann herausfinden zu wollen, was schiefging, statt einfach was anderes zu probieren.

Re: Jammer-Thread

Verfasst: 07.07.2013, 13:45
von eXile
Krishty hat geschrieben:Und VMWare ist so aufgeblasenes Business-Marketing-Blabla, dass ich die Funktionsliste ihrer „Lösung“ erst garnicht finde sondern nur Wolkendiagramme. AAAAH
Ich benutze tatsächlich den VMWare Player. Die automatisierte Installationsroutine fand ich zumindest immer extrem praktisch, um schnell eine 08/15-VM aufzusetzen.

Re: Jammer-Thread

Verfasst: 07.07.2013, 14:42
von Krishty
Unter meinen Suchergebnissen war VMWare Player noch als inkompatibel gelistet, aber auf der Produktseite wird es ausdrücklich als funktionierend beworben … dann war meine Quelle wohl veraltet. Dummerweise bin ich zur Produktseite garnicht erst gekommen, weil VMWare mehrere Virtualisierungsprodukte anbietet und ich ohne den Namen hoffnungslos in ihrem Marketing-Blabla verloren war :( Ich probier’s mal!

Re: Jammer-Thread

Verfasst: 07.07.2013, 15:50
von Krishty
Boah muss VMware dauernd was aus dem Internet nachinstallieren?! Ich habe hier kein Datenvolumen. Was ist so schwer daran, VMware Tools und diesen ganzen Kram schon mit dem Installer auszuliefern?!

Re: Jammer-Thread

Verfasst: 07.07.2013, 16:08
von Krishty
Jetzt weiß ich, was das mit dem Windows-Live-Login im Visual Studio 2013-Preview sollte: Windows 8.1 drängt einen ebenfalls dazu, sich via „Microsoft-Konto“ (ehemals Windows ID ehemals Live ID ehemals Hotmail-Konto ehemals MSN-Konto) einzuloggen statt durch ein systemlokales Benutzerkonto. ALLES IN DIE WOLKEN SCHIEßEN

Re: Jammer-Thread

Verfasst: 07.07.2013, 16:11
von eXile
Krishty hat geschrieben:Jetzt weiß ich, was das mit dem Windows-Live-Login im Visual Studio 2013-Preview sollte: Windows 8.1 drängt einen ebenfalls dazu, sich via „Microsoft-Konto“ (ehemals Windows ID ehemals Live ID ehemals Hotmail-Konto ehemals MSN-Konto) einzuloggen statt durch ein systemlokales Benutzerkonto. ALLES IN DIE WOLKEN SCHIEßEN
Ich nehme an, du hast es bereits herausgefunden, aber auch noch mal für alle anderen: Trennt man während der Benutzereinrichtungsroutine nach der Windows-Installation die Internet-Verbindung, erlaubt einem die Windows 8.1 Preview, auch ein lokales Konto anzulegen. Das geht sogar ohne Neustart, einfach den Zurückknopf bis zum Anfang drücken, Verbindung raus, Vorwärtsknöpfe drücken.

Re: Jammer-Thread

Verfasst: 07.07.2013, 16:15
von Krishty
Es geht auch so – man muss bei der Installation nur zwei Mal hintereinander die sehr winzigen Knöpfe dafür finden (sie drängen einen wirklich sehr!). Irgendwas von wegen Nein, Windows ohne Microsoft-Konto nutzen ganz ganz unten wenn man die E-Mail-Adresse eingeben soll. (Ist jedenfalls bei meiner Enterprise Evaluation so.)

Nebenbei: VMware ist langsam. Like, das läuft hier höchstens halb so schnell wie mit VirtualBox. Die Festplatte rattert ununterbrochen unerträglich und ich hätte fast Thrashing vermutet, aber die RAM-Auslastung ist noch erträglich und vielleicht waren einfach die Festplattenoptionen suboptimal für mein altes System.

Re: Jammer-Thread

Verfasst: 13.07.2013, 14:12
von Krishty
Viele Leute lachen darüber, wenn jemand „C mit Klassen“ programmiert.

Ich programmiere mittlerweile ausschließlich „C mit Namespaces, Templates, und Ausnahmen“.

Re: Jammer-Thread

Verfasst: 13.07.2013, 14:27
von dot
Ich bin mir sicher, du hast in deiner Liste auf Overloading vergessen... :P

Re: Jammer-Thread

Verfasst: 13.07.2013, 14:27
von CodingCat
Deswegen nutzt du ja auch „C++ ohne Klassen“. Was dir niemand verübeln kann, weil Klassen tatsächlich eines der am wenigsten gelungenen C++-Features ist. Ein Widerspruch besteht da ganz und gar nicht.

Re: Jammer-Thread

Verfasst: 13.07.2013, 14:32
von Krishty
dot hat geschrieben:Ich bin mir sicher, du hast in deiner Liste auf Overloading vergessen... :P
Ach stimmt; ja! :)
CodingCat hat geschrieben:Deswegen nutzt du ja auch „C++ ohne Klassen“. Was dir niemand verübeln kann, weil Klassen tatsächlich eines der am wenigsten gelungenen C++-Features ist.
Ich hätte sehr gern ein C++ ohne Polymorphie. Das würde die Aliasing Analysis deutlich vereinfachen, weil es keine dynamische Typisierung mehr gäbe.

Nebenjammern: Neue Seiten hier sind scheiße. Das Forum sollte die Seiten am letzten Beitrag ausrichten statt am ersten, so dass die letzte Seite immer voll ist und die Rest-Posts auf Seite 1 sind.

Re: Jammer-Thread

Verfasst: 13.07.2013, 14:36
von dot
Krishty hat geschrieben:Nebenjammern: Neue Seiten hier sind scheiße. Das Forum sollte die Seiten am letzten Beitrag ausrichten statt am ersten, so dass die letzte Seite immer voll ist und die Rest-Posts auf Seite 1 sind.
Ich find Seiten generell sind uncool. Ich würd gern einfach weiterscrollen...

Re: Jammer-Thread

Verfasst: 13.07.2013, 14:39
von Krishty
… und wie weit soll das hier sein? Das hier ist der 3.468ste Beitrag dieses Themas …

Re: Jammer-Thread

Verfasst: 14.07.2013, 16:44
von antisteo
Krishty hat geschrieben:… und wie weit soll das hier sein? Das hier ist der 3.468ste Beitrag dieses Themas …
Google+ macht's vor. Es werden die Scrollbalken gerendert, aber erst wenn man dorthin gescrollt hat, wird der Inhalt auch geladen.

Re: Jammer-Thread

Verfasst: 14.07.2013, 17:04
von Chromanoid
Ist bei Google+ nicht immer das neuste oben? Wie soll das vernünftig in einem Beitragsstrom funktionieren, der von alt nach neu sortiert ist? Wenn man auf Forenübersicht klicken will muss man bei Mausradbenutzung erst mal eine halbe Stunde lang nach oben scrollen (edit: oder die unteren Links benutzen, die ich noch nie benutzt habe :D)? Was ich ganz nett finde ist das automatische Dazuladen von Seiten wenn man ganz nach unten gescrollt hat, dann spart man sich zumindest das Blättern, das gibt's z.B. auf java-gaming.org.

Re: Jammer-Thread

Verfasst: 18.07.2013, 01:08
von antisteo
Eclipse warum ist der Menüpunkt "Neue Software installieren" im Menü "Hilfe"?
Und warum dauert es mehrere Sekunden vom Tastenanschlag bis der Buchstabe sichtbar wird, den man tippen wollte, wenn man nach Paketen sucht?

Re: Jammer-Thread

Verfasst: 18.07.2013, 08:35
von Chromanoid
antisteo hat geschrieben:Eclipse warum ist der Menüpunkt "Neue Software installieren" im Menü "Hilfe"?

Re: Jammer-Thread

Verfasst: 20.07.2013, 10:57
von Krishty
Früher:

    std::vector<Foo> const sorted(std::vector<Foo> foos) {
        std::sort(foos.begin(), foos.end(), sortFunc);
        return foos;
    }


heute:

    std::vector< Foo > const sorted( std::vector< Foo > foos ) {

        std::sort( foos.begin(), foos.end(), sortFunc );
        return foos;

    }


Warum machen die Leute das? Ist die Schriftgröße ihrer IDE so klein eingestellt, dass sie sonst keine Struktur mehr erkennen? Ist das Syntaxhighlighting so bunt geworden, dass man nur durch zusätzlichen Leerraum noch Muster sehen kann?

Re: Jammer-Thread

Verfasst: 20.07.2013, 11:13
von Chromanoid
Ja, da bin ich auch Fan der kompakten Notation. So ist es IMO noch erträglich, aber ich finde auch die kompakte Schreibweise am besten:
    std::vector< Foo > const sorted( std::vector< Foo > foos )
    {
        std::sort( foos.begin(), foos.end(), sortFunc );
        return foos;
    }

Re: Jammer-Thread

Verfasst: 20.07.2013, 11:46
von Krishty
Warum verbietet Visual C++’ STL, Schlüsselwörter zu #definen?

Bei new und so ist es ja noch halbwegs sinnvoll. Aber wenn #define noexcept throw() oder #define thread_local __declspec(thread) verboten werden, wie soll mein Compiler-unabhängiger Quelltext noch halbwegs ästhetisch bleiben?! Glauben die echt, dass ich nicht wüsste, was ich tue?

Re: Jammer-Thread

Verfasst: 20.07.2013, 11:54
von Artificial Mind
Krishty hat geschrieben:Warum verbietet Visual C++’ STL, Schlüsselwörter zu #definen?

Bei new und so ist es ja noch halbwegs sinnvoll. Aber wenn #define noexcept throw() oder #define thread_local __declspec(thread) verboten werden, wie soll mein Compiler-unabhängiger Quelltext noch halbwegs ästhetisch bleiben?! Glauben die echt, dass ich nicht wüsste, was ich tue?
Ich verstehe deinen Anwendungsfall, allerdings greift hier was aus der Frage http://stackoverflow.com/questions/2726 ... conforming
A translation unit that includes a [standard library header] shall not contain any macros that define names declared or defined in that header. Nor shall such a translation unit define macros for names lexically identical to keywords.

Re: Jammer-Thread

Verfasst: 20.07.2013, 13:29
von Krishty
Steht denn irgendwo
A Microsoft compiler shall only implement half the features described in this document in a manner that is highly offensive to all the poor fuckers using it
? Wenn sie die Schlüsselwörter nicht implementieren, sollen sie sie auch nicht reservieren.

Re: Jammer-Thread

Verfasst: 21.07.2013, 02:30
von Krishty
Oh, Visual Studio

    Matrix4x4 const Matrix4x4::identity = { {
        Vector4d::xAxis,
        Vector4d::yAxis,
        Vector4d::zAxis,
        Vector4d::wAxis
    } };


Alle beteiligten Typen sind POD. Visual Studio 2010 hätte hier jetzt folgenden Fehler gemacht: Weil dort keine Skalartypen stehen, wäre eine Initialisierungsfunktion zusammengebaut und beim Programmstart aufgerufen worden.

Für VS 2012 ist das zum Glück verbessert worden. Hier wird die Matrix tatsächlich als fertig initialisiertes Array in die Exe geschrieben und keine Initialisierung durchgeführt.

Immer.

Obwohl die Variable niemals verwendet wird.


Wahrscheinlich, weil die wegoptimierte Laufzeitinitialisierung noch irgendwo in den Compiler-Untiefen als Referenzierung hängen geblieben ist.

Also: Genau wie mit VS 2010 wieder überall

    Matrix4x4 const Matrix4x4::identity = { {
        { 1.0f, 0.0f, 0.0f, 0.0f },
        { 0.0f, 1.0f, 0.0f, 0.0f },
        { 0.0f, 0.0f, 1.0f, 0.0f },
        { 0.0f, 0.0f, 0.0f, 1.0f }
    } };


schreiben und in diesem Fall 80 Bytes sparen.

Interessant ist übrigens auch, welche Wirkung das darauf hat, irgendwas mit dieser Matrix zu initialisieren – mit Skalaren:

mov qword ptr [rsp+38h],r15
mov qword ptr [rsp+40h],r13
mov qword ptr [rsp+48h],r12
mov qword ptr [rsp+50h],r14


und mit Vektoren:

mov rax,qword ptr [Math::Similarity<float,3>::identity+8h (0140031340h)]
mov qword ptr [rsp+38h],rax
mov rax,qword ptr [Math::Similarity<float,3>::identity+10h (0140031348h)]
mov qword ptr [rsp+40h],rax
mov rax,qword ptr [Math::Similarity<float,3>::identity+18h (0140031350h)]
mov qword ptr [rsp+48h],rax
mov rax,qword ptr [Math::Similarity<float,3>::identity+20h (0140031358h)]
mov qword ptr [rsp+50h],rax


Bei der Initialisierung durch Skalare erkennt VC, dass die Matrix sich nicht verändert, und hält sie in Registern vor. Bei Initialisierung durch andere POD wird die Matrix wie beschreibbare Daten behandelt, und das für VCs Aliasing Analysis typische Sägezahnkopieren beginnt.

Das bedeutet: In VC 2012 wird die Initialisierung von const POD zur Kompilierzeit aufgelöst, aber die Constant Propagation drumherum existiert schlicht und einfach nicht. Wenn sie nicht einmal sowas hinkriegen, wird constexpr nicht vor 2020 implementiert sein.

Re: Jammer-Thread

Verfasst: 22.07.2013, 17:12
von Schrompf
Ich bin manchmal ein ziemlicher Trottel. Da wollte ich schnell eine Queue für Dinge einrichten, die irgendwann in der Zukunft zu tun sind. Die sah so aus:

Code: Alles auswählen

template <typename F>
size_t MachSpaeter( float wann, const F& was )
{
  static size_t id = 0;
  // neue ID
  ++id;
  mAufgaben.push_back( { id, jetzt + wann, was } );
  return id;
}
Schön simpel und schnell gemacht. Nur leider hat jede Instanz dieser Template-Funktion ihre eigene statische Variable. Diese schlichte Methode der ID-Verteilung hat also IDs mehrfach verteilt. Was übrigens der Grund dafür ist, warum es manchmal die GUI von Splatter nicht mehr layouted hat.

Re: Jammer-Thread

Verfasst: 23.07.2013, 21:00
von Schrompf
Verdammte Uralt-Linux-Bibliotheken. Was gibt es Schöneres, als die Build Config einer Lib in einer Umgebungsvariable abzulegen? Hm? Ich gebe gleich selbst die Antwort: ALLES ANDERE wäre schöner als das. Ich habe irgendwann eine Software installiert, die OpenSSL mitbrachte. Und die Deppen-Lib muss natürlich ihre Konfig global in eine Umgebungsvar speichern. Weil... na weil... tja. Nun will ich mir aus OpenSSL ne statisch gelinkte Lib für ein Projekt bauen und schon das Configure scheitert, weil sich die Parameter mit der anderen Install beißen. Tolle Wurst.

Aber die M$-Registry ist natürlich immer doof, weil sie genau dasselbe tut. Was für ein Haufen Pfeiffen.