Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Jammer-Thread

Beitrag von kimmi »

Hehehe, so etwas findet man in vielen Firmen. Ich kenne ähnliches in F77, F90, c und c++ ( alles in einem Projekt ).

Gruß Kimmi
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ich bitte jeden, der GUIs schreibt, die nur mit dem Windows-Standardthema kompatibel sind („Schrift ist grundsätzlich immer schwarz“), mit einem Fernglas in die Sonne zu gucken
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Warum
Warum müssen IXAudio2Voice, IXAudio2SourceVoice, IXAudio2SubmixVoice und IXAudio2MasteringVoice unbedingt ihr eigenes Süppchen kochen und per DestroyVoice() freigegeben werden statt durch Release()

Klar
Sie sind keine COM-Objekte
Aber darum muss man direkt jedes Template, was ich auf sie anwenden könnte, kaputtmachen oder was

Außerdem
Ist die API an sich ja ganz nett
Aber wer keine #defines und Default Parameters mag
Der sollte ganz schnell ganz weit wegrennen

Echt, Stimmung wie 1944
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Sternmull
Establishment
Beiträge: 264
Registriert: 27.04.2007, 00:30
Echter Name: Til
Wohnort: Dresden

Re: Jammer-Thread

Beitrag von Sternmull »

Auch wenn es ein bisschen spät kommt (hab ne Weile gebraucht mich aufzuraffen und mein vergessens Passwort zurück zu setzen :) ): Unter VC gibt es in der Familie der printf-mäßigen Funktionen auch welche denen man das Locale explizit mitgibt. Siehe hier die Dinger die mit "_l" enden.

Damit kann man sich vom Locale des Threads (bzw. dem globalen) entkoppeln. Das globale ist übrigens nicht durch eine CS geschützt. Ändert man das globale Locale in einem Thread, und verwendet es in einem anderen, dann knallts (fürher oder später... aus eigener Erfahrung :) ).
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: Jammer-Thread

Beitrag von marcgfx »

ich hasse den internet explorer. ich hasse ihn. ich denke mal 30% meiner projektzeit ist nur für diesen elenden klumpen code-müll (ich spreche von IE8+IE9) draufgegangen und es läuft jetzt trotzdem nicht. chrome und safari funktionieren problemlos, aber zur verteidigung des IE muss ich sagen, dass auch firefox und opera nicht mehr laufen. wieso das bei denen zwei so ist, weiss ich auch noch nicht. aber der elende IE legt natürlich noch ne schippe drauf. nicht nur dass er nicht läuft, um mein cross-domain problem zum laufen zu bringen gibt es ein sagenumwobenes !proprietäres! XDomainRequest object. Das gab mir aber nur ne lustige Exception zurück ohne auch nur den geringsten hinweis darauf was nicht ok ist. hab ich schon erwähnt dass ich IE hasse?
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Eine halbe Stunde gesucht:
enum foo { fi, fa, … fu, _number };
char * fooNames[] = { "LEER" };
// Löst nicht aus:
static_assert(_number == (sizeof(fooNames) / sizeof(fooNames[0])), "foo-Namen vergessen?");
Zwischen enum und der Definition der Lookup-Tabelle war noch eine Verwärtsdeklaration char * fooNames[_number]. Offenbar ist es kein Fehler, ein Array mit einer Größe zu deklarieren und mit einer anderen zu definieren und der Compiler verwendet einfach die Größe der Deklaration.
Nachtrag: Es ist sehr wohl ein Fehler, aber zumindest bei VC nur dann, wenn man zur Kompilierzeit auf einen Wert des Arrays zugreift (dann gibt es ein undefiniertes externes Symbol). Ein Laufzeitzugriff fluttscht hingegen einfach so durch.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Gleich hinterher:
§24.2.4 Output Iterators hat geschrieben:A class or a built-in type X satisfies the requirements of an output iterator if X if X satisfies the Iterator requirements (24.2.2) and the expressions in Table 105 are valid and have the indicated semantics. [...]

The only valid use of an operator* is on the left side of the assignment statement. Assignment through the same value of the iterator happens only once. Algorithms on output iterators should never attempt to pass through the same iterator twice. They should be single pass algorithms. [...]
Mit anderen Worten: Das implizite Interface / Output-Iterator-Konzept lässt unendlich mal mehr Arten der Benutzung zu, als tatsächlich erlaubt sind. Tatsächlich ist das gesamte Konzept ein einziger Witz, wie schon die STL-Implementierung des ostream_iterator ohne Umschweife offenbart:

Code: Alles auswählen

template<class _Ty,
	class _Elem = char,
	class _Traits = char_traits<_Elem> >
	class ostream_iterator
		: public _Outit
	{
public:
	// [...]
	ostream_iterator<_Ty, _Elem, _Traits>& operator=(const _Ty& _Val)
		{	// insert value into output stream, followed by delimiter
		*_Myostr << _Val;
		if (_Mydelim != 0)
			*_Myostr << _Mydelim;
		return (*this);
		}

	ostream_iterator<_Ty, _Elem, _Traits>& operator*()
		{	// pretend to return designated value
		return (*this);
		}

	ostream_iterator<_Ty, _Elem, _Traits>& operator++()
		{	// pretend to preincrement
		return (*this);
		}

	ostream_iterator<_Ty, _Elem, _Traits> operator++(int)
		{	// pretend to postincrement
		return (*this);
		}
	// [...]
	};
Und da wundere sich noch jemand, dass C++ als Hacker-Sprache verschrien ist...
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: Jammer-Thread

Beitrag von j.klugmann »

Ach, die einzig wahren Hackersprachen sind doch Perl und Haskell! :P

Asynchrone IO kann unter Linux sehr nervig sein. Zum einen gibt es keine Kernel-Implementation, alle verfügbaren Libs( nämlich 2 ) laufen im User-Space. Hat den Vorteil, dass kein Kernel-Thread crashen kann, allerdings ist die Performanz deswegen etwas in Mitleidenschaft gezogen worden. Libaio scheint beinahe vollständig zu sein, allerdings ist das Notification-Signal SIGEV_THREAD nicht implementiert. Da es sich dabei ja um AsyncIO handelt, kann man ja davon ausgehen, dass es einen eindeutigen POSIX-Standard gibt. Nix da, sind zwar Einträge vorhanden, aber die spezifizieren nicht das Verhalten von asynchronen IO Operationen. Letztendlich werde ich mir meine eigene AsyncIO-Lib bauen müssen. Argh...
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Um nochmal auf das leidige Thema zurückzukommen: Ich habe nun mal eben meinen eigenen ultraleichten Character-Stream-Buffer (komplett allokationsfrei) geschrieben (charstream) - der Vergleich mit dem std::stringstream zeigt, wie unglaublich wenig die zusätzlichen String-Allokationen ausmachen. Sowohl charstream als auch std::stringstream werden für jede der 100000 Konvertierungen komplett neu erzeugt. Man beachte auch, dass lexical_cast (sogar mit dynamischen String-Allokationen) im speziell für Integers optimierten Fall beides um Längen schlägt.

Code: Alles auswählen

int_to_char: 2.156
itoa: 9.017
sprintf: 65.785
num_put: 94.382
lexical_cast: 41.359
charstream: 255.368
stringstream: 283.743

float_to_char: 142.234
_gcvt: 152.679
sprintf: 140.927
num_put: 173.554
lexical_cast: 409.426
charstream: 382.529
stringstream: 387.029
Nachtrag: charstream-Code
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Das geht jetzt etwas neben die Tüte, sry, aber – MÜCKEN

Gerade beim Laufen hatte ich sie im Mund, in der Nase, in den Ohren, und mit Sicherheit auch noch in Körperöffnungen, wo ich gerade nicht nachgucken kann

Und jetzt schwirrt so ein Mistvieh hier rum

Und pendelt immer schön zwischen dem Bildschirm und meinem Ohr
visuell - audiell - visuell - audiell

Und wenn ich den Raum lichte, finde ich sie nicht
Und ich weiß jetzt schon, dass sie mir die Nacht zur Hölle machen wird
Ich habe zwar im Schlaf sauschnelle Reflexe (wegen der Zombies), aber KEINEN BOCK, morgen früh schon wieder mein Blut vom Kissen zu rubbeln
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: Jammer-Thread

Beitrag von j.klugmann »

Mücken sind die schlimmsten Lebewesen, die es gibt, sogar noch vor den Spinnen. Als Kind bin ich mal mit einem Baseball-Schläger auf einen Mückenschwarm losgegangen. Vielleicht sollte ich das mal wiederholen...
Imaging-Software und bald auch Middleware: http://fd-imaging.com
joggel

Re: Jammer-Thread

Beitrag von joggel »

Mücken aufs Maul!!
Und Zombies gleich mit.
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Top-OR »

Oh, geil, das ist wirklich schön off topic - aber ein wichtiges Thema!! Mein Beileid:
Ich könnte ausflippen, wenn ich z.B. kurz vorm Einschlafen bin und DANN dieses penetrante Mückensummen höre. Das ist mit das ekelhafteste Geräusch, was ich kenne. Das wars dann immer mit dem Schlaf: Ich bin da schon in der Bude rumgeturnt, das geht garnicht. Gegen diese bekackten Drecksviecher sollte es ENDLICH MAL GESETZE geben! - Und gegen die Mücken auch - haha ...
--
Verallgemeinerungen sind IMMER falsch.
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: Jammer-Thread

Beitrag von j.klugmann »

Ja, Mücken sind schlimm. Ich baue mir wohl jetzt USB-Raketenwerfer, um diese Dinger zu bekämpfen.
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Jammer-Thread

Beitrag von Eisflamme »

Wenigstens habt ihr nicht Ameisen und Käfer über eure Bildschirme krabbeln...

Das Problem hatte ich nämlich in Cairns immer. -.-

Bild
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: Jammer-Thread

Beitrag von Despotist »

Krishty hat geschrieben: Gerade beim Laufen hatte ich sie im Mund, in der Nase, in den Ohren
Und wenn du demnächst mit Schutzmaske + Brille läufst werden dich alle für einen Hypochonder halten oder einen der panische Angst vor Fallout hat.

Aber sie doch das positive daran. Wenigstens bist du nicht blutleer ;).
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Top-OR »

Ist das die hornoxe.com-Ameise? Bild Ich mag die ...
--
Verallgemeinerungen sind IMMER falsch.
Benutzeravatar
Biolunar
Establishment
Beiträge: 154
Registriert: 27.06.2005, 17:42
Alter Benutzername: dLoB

Re: Jammer-Thread

Beitrag von Biolunar »

Ich bin auf das Bild hereingefallen ... Bin gemütlich am Kuchen essen und versuche das Mistviech vom Monitor zu jagen -.-
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Wie wenig Leute auf Bildqualität achten sieht man daran, dass der Grafiktreiber dauernd Mist baut, wenn Antialiasing aktiviert ist
leiste.png
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Ganz ehrlich sah bei mir eher so der Bildschirm aus, als der VRAM kurz vorm Abrauchen war.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Überall sonst habe ich aber keine Beschwerden. Ist wirklich nur der Windows-Desktop, wenn ein Fenster minimiert wurde und Antialiasing aktiv ist. Ich habe auch mal schnell 900 MiB VRAM allokiert und durch FFTs gejagt (bei denen sich ja jeder Speicherfehler gnadenlos hochdirigieren würde) und nicht die Spur eines Bildfehlers gesehen. Achja doch: In Live for Speed sehe ich keine Alpha-Polygone mehr, wenn Transparenz-AA an ist. Shitty driver is shitty.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Dirk Schulz
Establishment
Beiträge: 130
Registriert: 01.03.2009, 14:21
Alter Benutzername: frittentuete

Re: Jammer-Thread

Beitrag von Dirk Schulz »

Jepp kann ich bestätigen ...


Ist "normal" bei ATI mit AntiAliasing an. Hatte auch schon alle möglichen Bildfehler im VS 2010 und Java-Programme sind schwarz, solange man nicht das Fenster neuzeichnen lässt. :x

Ohne AA an gibts dann keine Probleme.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: Jammer-Thread

Beitrag von marcgfx »

die same-origin-policy treibt mich noch in den wahnsinn. jeder besch... browser löst das problem anscheinend anders, oder ich versteh einfach nicht was ich mache. habe die letzten 2 wochen nichts anderes gemacht als mich mit dem ***** zu befassen und workarounds zu implementieren. habe zig sachen umgestellt, die zwar in einigen fällen jetzt besserung gebracht haben, aber eben nicht in allen. daten speichern kann ich aktuell nur in chrome. theoretisch müsste es aber überall gehen nur hab ich keinen blassen schimmer wie. hab mir schon überlegt das problem einfach mal liegen zu lassen und ein halbes jahr zu warten, in der hoffnung die browser hätten sich bei diesem problem geeinigt...
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Top-OR »

Ich lerne es aber auch nicht:

Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.

golem.de Forum

Ich bekomme da Blutdruck!

Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
Ich soll nicht bei golem.de posten.
--
Verallgemeinerungen sind IMMER falsch.
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Jammer-Thread

Beitrag von Eisflamme »

Stopped reading at "unsigned double".
Benutzeravatar
Brainsmith
Establishment
Beiträge: 109
Registriert: 04.09.2009, 13:52
Echter Name: Fabbo

Re: Jammer-Thread

Beitrag von Brainsmith »

classic troll is classic..

Unsigned double ist der kassischste Troll, den ich seit langem gesehen hab.. =D
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ich habe hier ein paar tausend Strings, im Schnitt eine einstellige Zahl Buchstaben lang. Und ich brauche keine abschließende Null. Wie hoch ist die Platzauslastung durch den Compiler? Ideen? Unter 60 %.

Zuerst einmal hasse ich, dass es keine Möglichkeit gibt, auf die abschließende Null zu verzichten. Natürlich könnte ich Buchstaben um Buchstaben in einer Liste hinschreiben statt eines String-Literals, aber das ist doch scheiße. Kommen auf tausend Strings schonmal tausend unnötige Nullen.

Weiterhin sorgt Visual C++ dafür, dass die Strings an vier Bytes ausgerichtet sind. Das sind wiederum durchschnittlich andernhalb verschwendete Bytes.

Und zu guter Letzt ist Visual C++’ String Pooling einfach nur scheiße. Es fasst zwar identische Strings zusammen ("bar" und "bar"), aber mehr auch nicht. "bar" und "foobar" werden in der Exe nicht überlappend abgelegt. (Ob der Optimizer schlicht zu blöd ist oder zu verbissen an der Ausrichtung jeder String-Adresse hängt, weiß ich nicht.)

Jetzt habe ich mir einen Code Generator geschrieben, der mir das Pooling übernimmt und eine .cpp mit der Deklaration des Pools und den Verweisen auf die einzelnen Strings ausspuckt. Die Größe meines read-only-Datenbereichs hat sich fast halbiert. Ist doch kacke, wenn ich in Zukunft jede Optimierung selber implementieren muss.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

mmh vielleicht sowas?
array X mit arrays aus utf-8 chars. X[0] enthält alle Strings mit der Länge 1 (in bytes). X[1] enthält alle Strings mit der Länge 2 (in bytes) usw.
für zusammengesetzte dinge vielleicht noch mal so eine matrix die statt utf-8 codes auf die strings verweist...
forget it :) hab deinen post nicht richtig gelesen -.-
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Blaaargh, ich glaub mich verreißts! Ein neues Chrome-Logo, mindestens genauso hässlich wie das neue Internet-Explorer-Logo. Ist das ein neuer Virus, eine Epidemie, womöglich die gezielte Degeneration der menschlichen Spezies?!
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

X.cpp(122): warning C4373: 'XXX::Process': virtual function overrides 'IXAPO::Process', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
Immer wieder schön, wenn mich der Compiler davor warnt, dass er standardkonform handeln wird
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten