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.

Re: Jammer-Thread

Beitragvon dot » 30.08.2012, 21:09

Schrompf hat geschrieben:Es ist nie zu spät, aber selten zu früh, die Freuden von size_t und SIZE_MAX kennen zu lernen.

Oder in dem Fall überhaupt einfach auto ;)
Benutzeravatar
dot
 
Beiträge: 1146
Registriert: 06.03.2004, 18:10

Re: Jammer-Thread

Beitragvon Krishty » 01.09.2012, 13:46

Dass WinAPI-Nachrichten nicht mit einem präzisen Zeitstempel kommen, ist ein riesiger Haufen Scheiße. Ich kann garnicht in Worte fassen wie fatal das für die Komplexität von Hochleistungsanwendungen ist.
Sterne rendern (mit Demo) und viele kleine Optimierungen

state is the enemy
Benutzeravatar
Krishty
 
Beiträge: 3505
Registriert: 26.02.2009, 11:18

Re: Jammer-Thread

Beitragvon Krishty » 01.09.2012, 16:21

Mein räudiges Nokia-Handy hat eine logarithmische Batteriestandsanzeige. Eine Woche zeigt es 100 % an; dann zwei Tage 75; einen Tag 50; eine halbe Stunde 25; und dann ist es leer. Wenn man bei 75 % zwei Tage wegfährt und den Stecker nicht mitnimmt, ist man gearscht.
Sterne rendern (mit Demo) und viele kleine Optimierungen

state is the enemy
Benutzeravatar
Krishty
 
Beiträge: 3505
Registriert: 26.02.2009, 11:18

Re: Jammer-Thread

Beitragvon antisteo » 01.09.2012, 20:42

Ausgerechnet der Funktionsaufruf der Physik-Bibliothek, der die meiste Rechenzeit beansprucht, kann nicht parallel aufgerufen werden, weil die Funktion am Anfang viel rechnet und das Ergebnis anschließend in irgendeine verkettete Liste einsortiert. Warum?
http://goldenwipf.de <-- tolles Projekt
http://ubuntu.com <-- tolles Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
 
Beiträge: 424
Registriert: 15.10.2010, 08:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitragvon Krishty » 02.09.2012, 14:36

Die gute Nachricht: Ich habe Visual C++ gerade dazu gekriegt, unter x86 die Gleitkommaarithmetik mit SSE durchzuführen.

Die schlechte Nachricht: Ich weiß nicht, wie.

Die noch schlechtere Nachricht:
Code: Ansicht erweitern :: Alles auswählen
 cvtsi2ss    xmm1,ebx  
 cvtss2sd    xmm0,xmm0  
 cvtps2pd    xmm1,xmm1  
 mulsd       xmm0,xmm3  
 mulsd       xmm1,xmm3  
 cvtsd2ss    xmm0,xmm0  
 cvtpd2ps    xmm1,xmm1  
 movss       dword ptr [esp+1B0h],xmm0  
 movss       dword ptr [esp+1B4h],xmm1  
 movq        xmm4,mmword ptr [esp+1B0h]  
 movq        mmword ptr [esp+23Ch],xmm4  
 movss       xmm4,dword ptr [ecx+1AD0h]  
 cvtps2pd    xmm4,xmm4  
 cvtss2sd    xmm0,xmm0  
 addsd       xmm4,xmm0  
 add         edi,eax  
 sub         edi,edx  
 cvtsi2ss    xmm2,edi  
 xorps       xmm0,xmm0  
 cvtpd2ps    xmm0,xmm4  
 movss       xmm4,dword ptr [ecx+1AD4h]  
 cvtps2pd    xmm4,xmm4  
 cvtps2pd    xmm2,xmm2  
 cvtss2sd    xmm1,xmm1  
 addsd       xmm4,xmm1  
 mulsd       xmm2,xmm3  
 cvtpd2ps    xmm2,xmm2  
 movss       dword ptr [esp+1B8h],xmm2  
 mov         edx,dword ptr [esp+1B8h]  
 xorps       xmm1,xmm1  
 cvtpd2ps    xmm1,xmm4  
 movss       xmm4,dword ptr [ecx+1AD8h]  
 cvtps2pd    xmm4,xmm4  
 cvtss2sd    xmm2,xmm2  
 addsd       xmm4,xmm2  
 cvtps2pd    xmm6,xmm0  
 mov         dword ptr [esp+244h],edx  
 cvtpd2ps    xmm2,xmm4  
 cvtps2pd    xmm4,xmm1  
 mulsd       xmm4,xmm5  
 movss       xmm5,dword ptr [esp+60h]  
 cvtps2pd    xmm5,xmm5  
 mulsd       xmm5,xmm6  
 movss       xmm6,dword ptr [esp+78h]  
 addsd       xmm4,xmm5  
 cvtps2pd    xmm6,xmm6  
 cvtps2pd    xmm5,xmm2  
 mulsd       xmm5,xmm6  
 movss       xmm6,dword ptr [esp+84h]  
 cvtps2pd    xmm6,xmm6  
 addsd       xmm5,xmm6  
 addsd       xmm4,xmm5  
 movss       xmm6,dword ptr [esp+70h]  
 cvtps2pd    xmm5,xmm1  
 cvtps2pd    xmm7,xmm0  
 cvtps2pd    xmm6,xmm6  
 mulsd       xmm5,xmm6  
 movss       xmm6,dword ptr [esp+64h]  
 cvtps2pd    xmm6,xmm6  
 mulsd       xmm6,xmm7  
 movss       xmm7,dword ptr [esp+7Ch]  
 addsd       xmm5,xmm6  
 cvtps2pd    xmm0,xmm0  
 cvtps2pd    xmm7,xmm7  
 cvtps2pd    xmm1,xmm1  
 cvtps2pd    xmm6,xmm2  
 mulsd       xmm6,xmm7  
 movss       xmm7,dword ptr [esp+88h]  
 cvtps2pd    xmm7,xmm7  
 addsd       xmm6,xmm7  
 addsd       xmm5,xmm6  
 cvtpd2ps    xmm5,xmm5  
 movss       dword ptr [esp+24Ch],xmm5  
 movss       xmm5,dword ptr [esp+74h]  
 cvtps2pd    xmm5,xmm5  
 mulsd       xmm1,xmm5  
 movss       xmm5,dword ptr [esp+68h]  
 cvtps2pd    xmm5,xmm5  
 mulsd       xmm5,xmm0  
 cvtps2pd    xmm0,xmm2  
 movss       xmm2,dword ptr [esp+80h]  
 cvtps2pd    xmm2,xmm2  
 mulsd       xmm0,xmm2  
 movss       xmm2,dword ptr [esp+8Ch]  
 cvtps2pd    xmm2,xmm2  
 addsd       xmm0,xmm2  
 addsd       xmm1,xmm5  
Fast die Hälfte des Texts sind Konvertierungen zwischen float und double – und das obwohl im Quelltext überhaupt keine double vorkommt. Die eigentliche Berechnung kann man überhaupt nicht mehr erkennen. Vielleicht steckt dahinter ein besonders absurder Versuch, die FPU nachzubilden. Ich weiß es nicht.
Sterne rendern (mit Demo) und viele kleine Optimierungen

state is the enemy
Benutzeravatar
Krishty
 
Beiträge: 3505
Registriert: 26.02.2009, 11:18

Re: Jammer-Thread

Beitragvon CodingCat » 02.09.2012, 18:50

C++' iostream-API ist eine absolute Frechheit. Sowohl weil sie zeigt, wie man Vererbung NICHT benutzt, als auch, weil sie nur aus einem riesigen unsortierten Haufen kryptischer Abkürzungen besteht. Davon abgeshen ist sie gnadenlos over-engineered (Wie war das mit EINER Aufgabe pro Klasse?), weshalb sie obendrein auch noch gnadenlos verfettet und ineffizient ist.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
CodingCat
 
Beiträge: 1702
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT

Re: Jammer-Thread

Beitragvon Biolunar » 03.09.2012, 12:52

CodingCat hat geschrieben:C++' iostream-API ist eine absolute Frechheit. Sowohl weil sie zeigt, wie man Vererbung NICHT benutzt, als auch, weil sie nur aus einem riesigen unsortierten Haufen kryptischer Abkürzungen besteht. Davon abgeshen ist sie gnadenlos over-engineered (Wie war das mit EINER Aufgabe pro Klasse?), weshalb sie obendrein auch noch gnadenlos verfettet und ineffizient ist.

Hast du konkrete Punkte, die dich stören? Bevor ich verstanden habe wie die Lib funktioniert, habe ich nämlich ähnlich gedacht ;)
Biolunar
Mahdi Khanalizadeh
 
Beiträge: 85
Registriert: 27.06.2005, 16:42
Alter Benutzername: dLoB

Re: Jammer-Thread

Beitragvon Artificial Mind » 04.09.2012, 14:16

http://io9.com/5940036/how-copyright-en ... ugo-awards
Willkommen in einer dystopischen Realität ...
Benutzeravatar
Artificial Mind
 
Beiträge: 654
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitragvon MoritzPGKatz » 04.09.2012, 18:49

Artificial Mind hat geschrieben:http://io9.com/5940036/how-copyright-enforcement-robots-killed-the-hugo-awards
Willkommen in einer dystopischen Realität ...

Oha...

Zum Thema passend:
Ich war am Sonntag auf dem Barcamp der C3S - wen das Thema Urheberrecht/Lizensierung interessiert und nicht nur über GEMA & Co. meckern, sondern auch eine Alternative supporten möchte, sollte sich das unbedingt mal reinziehen.
Musik / Sounddesign für Games
Website
SoundCloud
Benutzeravatar
MoritzPGKatz
Moritz P.G. Katz
 
Beiträge: 45
Registriert: 29.07.2011, 23:38

Re: Jammer-Thread

Beitragvon antisteo » 05.09.2012, 22:10

gwX muss die Voxel in Newton-Objekte umrechnen. Bis jetzt habe ich die Voxel als konvexe Hüllen erzeugt und als Objekte gespawnt. Das war zwar zur Laufzeit schnell, dafür aber für Änderungen der Landschaft irre langsam.
Die schnellere Variante ist, die Dreiecke des Marching Cube als TreeCollision zu erstellen. Allerdings hat Newton einen Bug, wodurch bei gewissen Eingabedaten Newton abschmiert.
Dass Newton bei falschen Eingabedaten abschmiert, ist nichts neues. Allerdings lasse ich mir die Dreiecke loggen und es sind valide Dreiecke. Kein NaN, kein Infinity, keine Dreiecke, bei denen die Eckpunkte aufeinanderliegen...
es ist zum heulen.
http://goldenwipf.de <-- tolles Projekt
http://ubuntu.com <-- tolles Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
 
Beiträge: 424
Registriert: 15.10.2010, 08:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitragvon glassbear » 06.09.2012, 20:47

Erfahrene Elektrotechniker schreiben Code wie ich vor vielleicht 6-7 Jahren. AAAAAAAAAAAAAAAAAAAAAAAH. Und ich soll das "mal eben" umarbeiten und auf Threading umstellen. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH. :twisted:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
glassbear
Enrico
 
Beiträge: 293
Registriert: 08.04.2003, 17:09
Wohnort: San Diego
Alter Benutzername: Enrico_

Re: Jammer-Thread

Beitragvon Jörg » 06.09.2012, 21:01

Kannst denen ja mal zum Dank eine Schaltung entwerfen ;)
Jörg
 
Beiträge: 266
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim

Re: Jammer-Thread

Beitragvon glassbear » 06.09.2012, 21:57

Jörg hat geschrieben:Kannst denen ja mal zum Dank eine Schaltung entwerfen ;)

Machen die ja nicht mal. Die schreiben nur Code. Uebel :twisted:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
glassbear
Enrico
 
Beiträge: 293
Registriert: 08.04.2003, 17:09
Wohnort: San Diego
Alter Benutzername: Enrico_

Re: Jammer-Thread

Beitragvon kaiserludi » 06.09.2012, 22:35

eXile hat geschrieben:
Krishty hat geschrieben:Eben angepackt (allerdings mit unsigned (normalized) int). Wie gut sich das anfühlt … den Quadranten eines Winkels für die eigenen trigonometrischen Funktionen bestimmen? Bloß die oberen Bits abfragen!
Das ist schön zu hören. :) Hast du dir neue Minimax-Polynome gebastelt, um die höhere Genauigkeit (in Vergleich zu float) zu nutzen?
Krishty hat geschrieben:Wo genau, außer bei Quaternion-Interpolation, ist das von Nutzen?
Naja, genau da. Und zwar sowohl beim SLERP mit Quaternionen wie auch der Konvexkombination von Quaternionen. Ich wollte eher davor warnen, im Bereich der Quaternionen auch nur in irgendeiner Weise mit Winkeln zu rechnen, genauso wenig wie man im Bereich der Rotationsmatrizen niemals plötzlich anfangen sollte, mit Winkeln zu rechnen.
glassbear hat geschrieben:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH. :twisted:
Du hast noch nie Code von Mathematikern gesehen. Ich sage nur: Jeder Variablenname ist maximal zwei Buchstaben lang. AAAAAAAAA!

Das geile ist: Die allersete Programmierpsrache, in der ich entwickelt habe, war damals TI-Basic, ein von der Syntax Basic recht nahe Interpretersprache für grafische Taschenrechner. Der Speicherplatz auf den Geräten war knapp und alle Programme wurden bei jedem Run komplett aus dem Source interpretiert, jeder Kommentar hat also den Bedarf an äußerst knappem Endbenutzer"-festplattenplatz" (ok, eigentlich ein Flashspeichership, aber eben als Dauerspeicher genutzt) erhöht. Um möglichst viele möglichst umfangreiche Games dort unterzubringen habe ich aberweitzige Codesizeoptimierungen betrieben und Spiele von 20k Sourcecode auf 5k optimiert. Das beliebteste nake auf dem System hatte, bevor ich mich daran gemacht habe, ca. 2k Code, nach meinen Optimierungen unter 200Bytes ohne Funktionseinbußen und lief dann auch doppelt so schnell. Null Kommentare und alle Variablennamen auf einzelne Buchstaben umbennen waren da noch die harmloseren Geschichten.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:
kaiserludi
 
Beiträge: 396
Registriert: 18.04.2002, 14:31

Re: Jammer-Thread

Beitragvon spobat » 07.09.2012, 16:49

Schau an, was Visual Studio 11 mit meinem aus Visual Studio 10 headern macht:
Code: Ansicht erweitern :: Alles auswählen
virtual virtual static static static void init();

Ich frage mich ja, was hier ein static *ueberhaupt* zu suchen hat. Ist wohl mehr als nur eine "wortverfielfachung".
Zum glueck laesst sich das aber mit einem "find-replace" durchgang beheben :)

Ist es eine gute Idee, die gleichen Funktionen in verschiedenen Menues zu haben?
"Run Code Analysis" findet sich beispielsweise sowohl unter "BUILD" als auch unter "ANALYZE".
Ich find es ne schlechte Sache, das muellt nur die Menues zu und sorgt fuer uneinheitliche Bedienung zwischen Entwicklern.
Benutzeravatar
spobat
 
Beiträge: 58
Registriert: 12.09.2010, 23:20

VorherigeNächste

Zurück zu Allgemeines Talk-Brett

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast