Suchergebnisse
Suchergebnisse 1-20 von insgesamt 826.
TSINGLETON und __CLOGFILE können beliebig gewählt werden. Wichtig ist dass keine andere Header-Datei dasselbe Symbol verwendet (deshalb oft Bezug auf den Name des Headers). Dieses Symbol wird definiert sobald der Präprozessor das erste Vorkommen der Header-Datei in der Cpp-Datei erreicht. Beim nächsten Vorkommen ist das symbol bereits definiert und der Code wird nicht kompiliert. So wird eine Header-Datei pro Cpp-Datei nur einmal verwendet. In deiner Entwicklungsumgebung kannst du das normalerwe...
1. u. 2.: Das ist ein sogenannter Include-Guard. Die Befehle mit einem # werden vor dem Kompilieren vom Präprozessor ausgeführt. Bei einem #include wird der Inhalt der Header-Datei in die Cpp-Datei kopiert. Jetzt kann es sein, dass du die Header-Datei mehrmals in eine Cpp-Datei einbindest. Einmal direkt und einmal transitiv über andere Header-Dateien. Der Include-Guard sorgt dafür, dass der kopierte Inhalt der Header-Datei nur kompiliert wird, wenn er nicht schonmal in der gleichen Cpp-Datei vor...
Wenn ich das richtig verstanden habe ist es etwas komplizierter. Im Grunde ist eine Matrix ja eine Matrix. Wie sie intern dargestellt wird (row/column major) hat keinen Einfluss auf ihre Bedeutung. Jetzt ist es so, dass ein Vektor auch eine Matrix ist, da gibt es aber 2 Möglichkeiten: 1x4 und 4x1, also Zeilenvektor und Spaltenvektor. Bei einem Spaltenvektor musst du Matrix * Vektor machen und bei einem Zeilenvektor entsprechend umgekehrt. Das ist mathematisch notwendig, da nur diese Operationen ...
Entsprechend ist der Vektor in OpenGL auch ein Spaltenvektor und in DirectX ein Zeilenvektor.
Wenn du das Objektmanagement richtig machst, kannst du sie anhand der Pointer unterscheiden und zuordnen. Sofern die ID keine andere Verwendung hat.
Also es ist eher unrealistisch dass das eine Webanwendung wird. Port ist auch gar kein Problem. Die nativen TCP-Schnittstellen der jeweiligen Standardbibliotheken sind bisher auch in Verwendung. Ich überarbeite den Teil nur und hatte auch ein Auge auf Websocket geworfen. Bei der eigenen Implementierung muss man eben noch auf mehr achten bzw. mehr selber machen.
Was mir wichtig ist: - beidseitige Kommunikation zu beliebigem Zeitpunkt - TCP-basiert mit SSL-Verschlüsselungsoption - Verfügbarkeit für C# und Java Bei Websocket fand ich die Schnittstelle toll mit den Callbacks (das ist eigentlich das was ich will), sowie der automatische Heartbeat-Mechanismus.
Danke für euer Feedback. Ich denke ich weiß jetzt genug um eine Entscheidung zu treffen bzw. das dann umzusetzen. Und Goldwing danke dass du mich auf Websockets hingewiesen hast, mir ist das irgendwie entgangen, das hilft mir weiter.
Handelt sich dabei um einen Java-Server. Asynchrones SQL wäre da also die Lösung, damit der Thread-Pool mit maximaler Effektivität arbeitet? Ich hatte den Thread-Pool dann mit 8 Threads geplant (4 Kerne * 2 Hyperthreads) um die Architektur komplett ausnutzen. Hätte ich einen Profit von mehr Threads? Wenn das so funktionieren würde wäre das toll. Eine letzte Frage dazu habe ich aber noch: Ich hatte geplant die Requests teilweise zu synchronisieren (mit synchronized). Soweit ich weiß sind einzelne...
Zitat von »Tobiking« Wenn du von asynchron wieder auf synchron wechselst gewinnst du nicht viel. Aber Datei- und Netzwerkoperationen sind inzwischen zum großen Teil asynchron vorhanden (NIO 2 & Netty). Problematisch sind meist nur die Datenbankzugriffe. Da wird ein Ansatz wie deiner mit einem Connection Pool verwendet. Da der Connection Pool sich aber nur auf die Datenbankverbindungen bezieht, ist die Größe recht beschränkt. Die Datenbank wird durch eine große Anzahl an Verbindungen nicht schne...
Hey, ich habe hier im Moment einen Server vorliegen, auf den erwartet mehrere hundert Clients sich verbinden sollen. Im Moment ist er so implementiert, dass ein Thread auf neue Verbindungen wartet und für jeden Client ein neuer Thread hinzukommt. Zusätzlich ist es so, dass für jede Message eine neue Verbindung aufgebaut wird (und dann direkt wieder geschlossen wird). Das möchte ich abschaffen und auf eine konstante Verbindung setzen, da sowieso jede 10 Sekunden eine Nachricht geschickt wird und ...
Glaube ich kaum. Der Compiler muss so optimieren, dass die Semantik des Codes erhalten bleibt (Ausnahme Return Value Optimization). Es passiert also was du geschrieben hast.
Zitat von »Crasher« Versteh ich das jetzt richtig, das die "Release"-Funktion den von mir geschriebenen Code, unter umständen noch verändert? Ja, also der Code wird ja in Maschinencode umgewandelt, also Prozessorinstruktionen. Das sieht schonmal komplett anders aus als C++-Code. Da gibt es auch immer mehrere Wege, wie der Compiler das machen kann. Im Debug-Modus macht er es so, dass es logisch mit deinem Code übereinstimmt. Das bedeutet dass alle Variablen existieren und der Ablauf gleich bleib...
Zitat von »Crasher« Was beim "Debug" ja daran liegt, das er im Hintergrund noch etwas arbeitet und sich die Arbeitsschritte merkt (oder so), soweit ich weiß. Naja der Debugger wird schon Ressourcen verbrauchen, aber das ist nicht das eigentliche Problem. Du kannst ja schließlich auch ein Debug-Build ausführen ohne einen Debugger anzuhängen, genauso wie du ein Release-Build debuggen kannst (was aber dann nicht so gut funktionieren wird). Der Debug-Build enthält einfach viele Debug-Symbole, die d...
Enthalten die increment-Variablen die Werte, die du haben willst? Überleg mal was passiert wenn beide 0 sind (kann das passieren?). Denke auch nochmal die Logik der beiden If-Verzweigungen in Z.16 und Z.22 durch.
Hey, ich implementiere aktuell einen Volume Renderer (Ray March) sowohl in Unreal als auch in Unity. Dazu verwende ich die Formel: Quellcode 1 color= color * (1 - sampleValue) + sampleColor * sampleValue Dabei ist color die Variable, die die Farbe aller Samples kumuliert. sampleValue ist der Wert an dieser Stelle in der 3D-Textur und sampleColor die Farbe dieses Voxels die über eine Transfertextur abhängig von dem sampleValue bestimmt wird. Dieses Vorgehen ist teilweise selbst gebaut, da ich nur...
Quellcode 1 return (db == null)? false:true; Ähhh ja...
Was man auch noch dazu sagen muss, nicht alles findest du mit Learning by Doing heraus bzw. Trial and Error. Es gibt Dinge die werden funktionieren, sind aber nicht unbedingt gut gelöst und man könnte es eleganter oder besser machen. Das wirst du dann kaum rausfinden wenn du es nicht lernst (z.B. Patterns oder Best Practices). Andere Sache sind auch noch Dinge die keine offensichtlichen Fehler produzieren, bei denen du wissen musst wie es geht. In C++ gibst du z.B. einen Pointer auf eine lokale ...
Ich verstehe deinen Post nicht ganz. Es ging hier ja nicht um Java sondern um C# was du ja auch verwendest. Jar erwähnte nur dass er aus dem Bereich kommt und gerne wüsste was Structs in C# können. Außerdem finde ich die Diskussion nicht soo offtopic, geht immerhin um Unity und was man noch besser machen könnte. So wie ich das mitbekommen habe, könntest du da was von mitnehmen.
Structs in C# sind Werttypen, d.h. die Instanzen werden nicht auf dem Heap angelegt und sind wie in C++ normale Klassen/Struct-Instanzen oder in Java eine Variable von einem primitiven Datentyp (int, float, etc.). Im Gegensatz zur class in C#, welche sich wie ein Referenztyp verhält. Das bedeutet Instanzen werden auf dem Heap angelegt, sind Garbage-collected, wie Pointer/Referenzen in C++ und Klassen in Java. D.h. von einem Referenztyp eine Variable zu Kopieren, kopiert nur die Referenz, nacher ...