Leistung von DrawingVisual vs Leinwand.OnRender für viele von sich ständig ändernden Formen

Arbeite ich an einem Spiel-wie app, die hat bis zu tausend Formen (Ellipsen und Linien), die sich ständig ändern, bei 60fps. Das Lesen einer exzellente Artikel auf die rendering-viele bewegliche Formen, implementiert habe ich dies über eine benutzerdefinierte Leinwand Nachkomme, überschreibt OnRender zu tun, die Zeichnung über einen DrawingContext. Die Leistung ist Recht vernünftig, obwohl die CPU-Auslastung bleibt hoch.

Aber der Artikel lässt vermuten, dass die meisten effizienter Ansatz für ständig in Bewegung Formen ist die Verwendung von viel DrawingVisual Instanzen statt OnRender. Leider, obwohl es nicht erklären warum, dass schneller sein soll für dieses Szenario.

Ändern der Umsetzung in dieser Art und Weise nicht eine kleine Anstrengung, also würde ich gerne die Gründe verstehen, und ob Sie anwendbar sind, um mich vor der Entscheidung für die Umstellung zu machen. Warum konnte die DrawingVisual Ansatz führen zu einer geringeren CPU-Auslastung als die OnRender Ansatz in diesem Szenario?

Romkyns, könnten Sie einige vereinfachte version mit DrawingVisual und Leinwand.OnRender (), um die Leistung, bevor Sie Tauchen Sie ein in große Veränderungen. Wie für die Antwort - ich bin völlig einig mit Charlie.

InformationsquelleAutor Roman Starkov | 2010-02-23

Schreibe einen Kommentar