conways-game-of-life

___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ qstntxt ___

Unten ist eine (sehr naive) Implementierung von Conways Spiel des Lebens in WPF. Es ist nur eine Demo ...

xaml:

%Vor%

Code dahinter:

%Vor%

So sieht es aus:

Wenn ich %code% durch %code% ersetze, läuft das Programm viel langsamer. Warum?

Ich teste unter Windows 7 64-Bit mit 2010 Express.

    
___ qstnhdr ___ Brushes.White verlangsamt die Grafikdemo ___ answer16909075 ___

Es gibt nichts besonderes an der Verwendung von %code% .

Wenn Sie Ihren eigenen lokalen Pinsel außerhalb des Makrosschritt-Event-Handlers definieren und ihn dann einfrieren, verhält er sich genauso wie bei der Verwendung von Brushes.White. Wenn Sie es nicht zuerst einfrieren, wird es sich weit, viel schlechter verhalten.

Die beste Leistung besteht darin, Ihren Pinsel einmal zu Beginn jedes Aufrufs von macroStep vor der Schleife zu erstellen und ihn dann einzufrieren. Es ist eine deutliche Verlangsamung, wenn Sie einen neuen Pinsel in der innersten Schleife erstellen.

Wenn Sie außerdem das Intervall für den Code mit schlechtem Verhalten erhöhen, wird das Leistungsproblem behoben. Meine Vermutung ist, dass es eine Art Ressourcenbereinigung gibt, die in einem Hintergrundthread nach dem Rendern jedes Mal auftritt, das an die Interna des Pinsels geknüpft ist, aber es wird nicht in der Lage sein, seine Bereinigung zu machen, weil du gerade umdrehst und Verwenden des Pinsels in der nächsten Iteration. Um dies zu demonstrieren, habe ich einen Pinselpool erstellt und benutze jedes Mal einen anderen Pinsel:

%Vor%

Wenn Sie die Anzahl der Pinsel auf 1 setzen, ergibt sich dasselbe Verhalten wie bei Verwendung von %code% . Aber wenn Sie es auf 2 oder mehr setzen, erhalten Sie die Leistung, die Sie erwarten.

    
___ tag123wpf ___ Windows Presentation Foundation oder WPF ist ein Subsystem zum Rendern von Benutzeroberflächen in Windows-basierten Anwendungen. ___ answer16656681 ___

Weil %code% einen Alpha-Wert von Null hat, was bedeutet, dass WPF es nicht rendern muss, weil es vollständig transparent ist - andererseits ist das Alpha der weißen Farbe 255, was bedeutet, dass es eine vollständig weiße Farbe ist gerendert.

    
___ tag123brushes ___ hilf uns dieses Wiki zu bearbeiten ___ tag123congensgameoflife ___ Das Spiel des Lebens, auch einfach als Leben bekannt, ist ein zellulärer Automat, der 1970 vom britischen Mathematiker John Horton Conway entwickelt wurde. Das "Spiel" findet auf einem 2D-Gitter statt, das aus Zellen besteht, die entweder "lebendig" oder "tot" sein können. Bei jeder Iteration wird der Zustand jeder Zelle basierend auf den Zuständen der Zelle und ihrer 8 Nachbarn bei der vorherigen Iteration berechnet. ___
1
Antwort

Haskell parMap und Parallelität

Ich habe eine Implementierung von Conways Spiel des Lebens. Ich möchte es beschleunigen, wenn möglich durch Parallelität. %Vor% Bei der Profilerstellung machen Nachbarn 6,3% der aufgewendeten Zeit aus, und während ich klein war, erwartete ic...
01.09.2012, 04:15
7
Antworten

Wie nennt man diese JavaScript-Syntax, damit ich sie recherchieren kann?

1) Was ist im folgenden Code der Grund dafür, dass gameOfLive eine Variable ist und nicht nur function gameOfLife() ? 2) Was ist gol ? Es scheint wie ein Array, aber ich bin nicht vertraut mit der Syntax oder wie es heißt. Ich lerne...
08.07.2010, 21:43
2
Antworten

Verwirrender Fehler im Game Of Life Programm

Ich habe einen funktionierenden Game of Life Code. Es speichert jede Population als Bitmap. So sieht die Ausgabe aus (abgeschnitten): Beim Säubern des Codes habe ich festgestellt, dass, wenn ich Zeile 60 auskommentiert oder auf andere Wei...
01.11.2014, 02:37
5
Antworten

Multithreaded Java Programm für Conways Spiel des Lebens - Streit in den Grenzzellen

Ich lerne die gleichzeitige Programmierung in Java und schreibe eine Simulation für Game of Life. Hier ist was ich denke: Verwenden Sie int [] [], um die Zustände der Zellen zu speichern partitioniere das int [] [] in t Segmente und ver...
24.02.2010, 19:50
2
Antworten

Brushes.White verlangsamt die Grafikdemo

Unten ist eine (sehr naive) Implementierung von Conways Spiel des Lebens in WPF. Es ist nur eine Demo ... xaml: %Vor% Code dahinter: %Vor% So sieht es aus: Wenn ich new SolidColorBrush(new Color()) durch Brushes.White ers...
20.05.2013, 04:10