2 Stimmen

Wie lässt sich die Darstellung von Diagrammen in Flex beschleunigen?

Ich verwende ein Liniendiagramm, aber es wird ziemlich langsam neu gerendert, wenn ich einen neuen Punkt hinzufüge, wenn die Gesamtanzahl der Punkte ~1200 Punkte ist. Zugegeben, dies läuft auf einem ziemlich langsamen PC (~600 MHz). Die Lektüre der Flex-Dokumentation über die Beschleunigung des Renderings (Ausschalten von Schlagschatten, Deaktivieren von filterData usw.) scheint nicht zu helfen. Ich habe mein Diagramm an eine ArrayCollection gebunden (anstelle des Arrays, das ich vorher verwendet habe und das ich manuell aktualisiert habe) und es scheint nicht schneller zu sein. Die Dokumentation von Adobe scheint mich glauben zu lassen, dass das Diagramm nur das berücksichtigt, was sich seit der letzten Aktualisierung geändert hat, aber ich füge nur einen Punkt hinzu! Wenn diese Informationen korrekt sind, warum dauert es dann wesentlich länger (5 Sekunden), einen Punkt zu aktualisieren, wenn ich ~1200 Punkte habe, als wenn ich nur 2 Punkte habe (sofort)?

FYI - Wenn ich einen neuen Punkt zu meinem ArrayCollection hinzufügen, muss ich eine "AC.refresh()" zu tun, um die DataBinding, um die neuen Daten zu holen. Irgendwelche Ideen, was ich tun kann, um den Prozess zu beschleunigen?

0 Stimmen

Haben Sie in Erwägung gezogen, die Punkte zu mitteln, um weniger Punkte auf dem Raster anzuzeigen, und dann dem Benutzer die Möglichkeit zu geben, in einen Bereich des Rasters zu "zoomen", der mehr Punkte anzeigt? Zum Beispiel die Anzeige von Monaten und dann das Zoomen in die Wochen eines Monats.

1voto

James Hay Punkte 12299

Jede Zeichnung mit 1200 Punkten in Flash/Flex wird beim erneuten Zeichnen langsam sein. Wenn Sie einen zusätzlichen Punkt hinzufügen, wird die gesamte Serie ungültig. Sobald das Diagramm ungültig ist, wird es bei der nächsten Gelegenheit neu gezeichnet. Dieser Neuaufbau wird langsam sein. Ich fürchte, das lässt sich nicht umgehen.

Ich möchte Sie fragen, warum Sie 1200 Punkte auf dem Diagramm gleichzeitig anzeigen müssen. Jeder, der dieses Diagramm betrachtet, wird nicht in der Lage sein, all diese Informationen aufzunehmen. Wenn Sie den Trend dieser Punkte anzeigen müssen, dann müssen Sie das Design so ändern, dass es Durchschnittswerte anzeigt (wie in Chris' Kommentar). Es gibt auch andere Strategien, die Sie anwenden können. Werfen Sie einen Blick auf die Fiat Eco Drive Anwendung nur eine maximale Reichweite zu einem bestimmten Zeitpunkt angezeigt werden soll. Obwohl wir also Hunderte oder Tausende von Punkten haben könnten, zeigen wir nur eine bestimmte Anzahl von ihnen an.

Es gibt viele andere Strategien, um damit umzugehen, und Sie müssen wirklich einen weiteren Blick auf das Diagrammdesign werfen und dann die eigentliche Diagrammkonstruktion überarbeiten.

0 Stimmen

Ich habe mich dafür entschieden, nicht alle Werte grafisch darzustellen, sondern meine Daten in 2-Minuten-Abschnitte aufzuteilen und 2 Punkte grafisch darzustellen: den Höchstwert und den Mindestwert in diesem Abschnitt. Auf diese Weise kann ich immer noch Spitzen und Täler in meinen Daten sehen, ohne dass sie durch die Mittelwertbildung verloren gehen.

0voto

Viet Anh Do Punkte 419

Fast Rendering Zeit des Diagramms ist von Rendering-Serie kommen, so dass, wenn Sie nur dataProvider ändern und halten Anzahl der Serien, das Diagramm wird sehr gut von zweiten Zeit zu rendern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X