Du bist nicht angemeldet.

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 859

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

231

08.05.2013, 15:57

Übrigens muss ich dazu sagen, dass selbst einfachste Loops ohne volatile bisher mir in C# (leider) keine Endlosschleifen produziert hat. So toll kann die Optimierung solcher Zugriffe also irgendwie nicht sein.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schrompf

Alter Hase

Beiträge: 1 418

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

232

08.05.2013, 16:02

In C# wahrscheinlich wirklich nicht, da hat der Compiler ja nur Millisekunden für die Compilierung und alle Aufrufe in externe Module sind zur Übersetzungszeit unbekannt. In C++ im Release Build mit seinen Minuten an Rechenzeit *könnte* der Compiler das optimieren. Aber ich glaube irgendwo mal aufgeschnappt zu haben, dass zumindest Visual Studio eine Heuristik eingebaut hat, Busy Loops zu erkennen und entsprechend zu behandeln.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

Helmut

5x Contest-Sieger

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

233

08.05.2013, 16:13

Daher auch meine Frage @Helmut: in C++ ist volatile nämlich KEINE Thread-Sicherheit.

Ich habe nicht gesagt, dass der C++ Standard das vorschreibt. Lediglich der VS Compiler hat dieses Feature, wie du hier auch nachlesen kannst. Atomaren Zugriff kann man da auch voraussetzen.

@BlueCobold
Für einen Compiler ist es extrem schwierig zu beweisen, dass ein externer Funktionsaufruf nicht eine Variable verändern kann. Außerdem benutzen viele Programmierer volatile nicht. Das Einbauen solcher Optimierungen würde also viele Bugs verursachen.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

BlueCobold

Community-Fossil

Beiträge: 10 859

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

234

08.05.2013, 16:26

@BlueCobold
Für einen Compiler ist es extrem schwierig zu beweisen, dass ein externer Funktionsaufruf nicht eine Variable verändern kann.
Und weil den Compiler das auch gar nicht interessiert, gibt es volatile.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schrompf

Alter Hase

Beiträge: 1 418

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

235

08.05.2013, 17:28

@BlueCobold
Für einen Compiler ist es extrem schwierig zu beweisen, dass ein externer Funktionsaufruf nicht eine Variable verändern kann.
Und weil den Compiler das auch gar nicht interessiert, gibt es volatile.


Nein, im Gegenteil: eben gerade *weil* der Compiler sich dafür interessiert, was in den Funktionen passiert, gibt es volatile.

@Helmut: ich habe Dich missverstanden. Danke für die Korrektur, wieder was gelernt.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

BlueCobold

Community-Fossil

Beiträge: 10 859

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

236

08.05.2013, 17:44

Ehrlich, Schrompf, ich glaube nicht daran, dass der JIT-Compiler solche Analysen auch nur in Erwägung zieht. Weder bei Java, noch bei C#.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schrompf

Alter Hase

Beiträge: 1 418

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

237

08.05.2013, 18:05

Hm, dann reden wir wohl vom selben. Oder ich habe Dich missverstanden. Der JIT-Compiler hat nicht die Zeit, sich dafür zu interessen, aber warum sollte man gerade deswegen volatile brauchen?
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

BlueCobold

Community-Fossil

Beiträge: 10 859

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

238

08.05.2013, 18:35

Hmm. Weiß nicht, wie ich das beschreiben soll. Ich weiß aber, was du meinst, wir betrachten das irgendwie von verschiedenen Seiten.
Ist aber auch egal, solange man weiß, was volatile tut und wann man es braucht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • Private Nachricht senden

239

11.05.2013, 01:01

C-/C++-Quelltext

1
2
return 0;
bValue = false;


Well...shit.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veralteten strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

240

11.05.2013, 01:58

Gabts da keine Warnung? Oo
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige