Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Horus« (03.11.2012, 13:39)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
EINE SACHE IST ALLERDINGS SEHR KOMISCH
Die CPU Auslastung liegt bei nur 12-13%
Das ist doch nicht normal. Wie kann ich die CPU besser auslasten?
Kann es daran liegen das mein Laptop einen Intel i7 Processor hat? Hat der 7 Cores?
Wenn ja wäre Multiheading ja mal was oder was meint ihr?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (03.11.2012, 14:01)
Administrator
Zeigerarithmetik ist etwas ganz anderes als Zeiger. Vom Prinzip her sind in C# alles das Zeigertypen, was eine Instanz einer Klasse ist oder per new erzeugt wurde.
Sehr gutZitat
Also ja, wenn Du das auf 4 Kerne aufteilen kannst, bist Du auch etwa 4mal so schnel
Oh nein!Zitat
wird aber sehr schnell sehr komplex und nicht alles ist überhaupt parallelisierbar...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Horus« (03.11.2012, 16:10)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Zeigerarithmetik ist etwas ganz anderes als Zeiger. Vom Prinzip her sind in C# alles das Zeigertypen, was eine Instanz einer Klasse ist oder per new erzeugt wurde.
Aber nicht structs (die werden auch per "new" erzeugt).
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public void Render() { Allocator Allocator;//Teilt die Partikel bzw. Sektoren für die Header ein for (int i = 0; i < Cores; i++)//Auf Partikelrender festlegen ThreadParticle = new Thread(RenderParticles); for (int i = 0; i < Cores; i++)//Starten { Allocator.Start = i * (Config.ParticleMaximum - 1) / Cores; Allocator.End = 1 + Allocator.Start + (Config.ParticleMaximum - 1) / Cores; ThreadParticle.Start(Allocator); } for (int i = 0; i < Cores; i++)//Joinen ThreadParticle.Join(); } |
C#-Quelltext |
|
1 2 |
for (int i = 0; i < Cores; i++)//Auf Partikelrender festlegen ThreadParticle = new Thread(RenderParticles); |
C#-Quelltext |
|
1 2 3 4 5 6 7 |
public void SetUp() { Cores = Environment.ProcessorCount*2; ThreadParticle = new Thread[Cores]; for (int i = 0; i < Cores; i++) ThreadParticle[i] = new Thread(RenderParticles); } |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (05.11.2012, 13:10)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (04.11.2012, 21:16)
Zitat
Schau Dir nochmal genau an, was Du da mit den drei nacheinander ausgeführten Schleifen eigentlich anrichtest und korrigiere das.
Ich habe doch einen Array von Threads...Zitat
Kleiner Tipp: List oder Array wäre hier irgendwie angebracht.
C#-Quelltext |
|
1 |
Particle[] Particle = new Particle[Particlemaximum] |
C#-Quelltext |
|
1 |
Particle[][] Particle = new Particle[Particlemaximum/Cores][Cores]; |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (05.11.2012, 13:13)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (05.11.2012, 13:19)
Werbeanzeige