Bei der Veröffentlichung neuer Version von FastReport.Net 2017.1.0 bekommen Sie eine wesentliche Beschleunigung bei der Erstellung und beim Export vom Bericht. Außerdem ist der Verbrauch vom Gedächtnis Ressourcen abgestiegen. In diesem Artikel geht es um den Vergleich von den „neuen“ und „alten“ Versionen gemäß diesen Parametern.
Testen Methode.
Beim Testen erstellen wir den Bericht und exportieren wir ihn in mehrere Formate: PDF, XLSX, HTML mit der schichtorientieren Methode (denn verwendet man diese Methode in Web Berichten.)
При этом измеряется время экспорта и размер полученного файла. Сначала проведем тестирование для версии 2016.4.0, затем - для новой 2017.1.0.
Auch speichert man die Zeit vom Export und die Größe von erhaltener Datei und weiter analysiert.
Nehmen wir eine populäre Berichts Schablone Master-Detail und einen XML Datenlager.
Dazu verwenden wir nicht so komplizierte Anwendung:
Hier Multi Page ist ein standardisierter mehrseitiger Bericht und Unlimited Page ist der Bericht mit der aktivierten Eigenschaft UnlimitedHeight. Wir verwenden zwei fast gleiche Berichte, aber ein von denen diese „unendliche“ Seite hat. Hier merkt man, dass die Größe von Bericht mit den 100 Megabytes beschränkt wird. Wenn diese Beschränkung übergenommen wird, werden neue Seiten erstellt.
Um einen unendlichen Bericht zu machen, eröffnen wir ihn im Designer. Im Inspektor der Eigenschaften wählen wir die Berichts Seite und stellen wir die Eigenschaft UnlimitedHeight=true ein oder UnlimitedWidth=true, wenn Sie unendliche Breite brauchen.
Für die Abmessungen verwenden einen Profiler, der ins FastReport integriert wurde:
Profiler.Start(); - für den Start.
Profiler.Stop(); - stoppen und die Ergebnisse von den Abmessungen zeigen.
Starten wir jetzt jeden Export und notieren die Ergebnisse der Arbeit vom Profiler. Die Ergebnisse zeigt der Profiler in messagebox:
Ergebnisse den Abmessungen
Für den standardisierten Bericht ist die Zeit allgemein abgestiegen. Aber ist dennoch die Zeit beim Export gestiegen. Wahrscheinlich sind keine alle Optimierung Handlungen beenden.
Für den mehrseitigen Bericht ist der Verbrauch vom Gedächtnis abgestiegen.
Und was ist mit dem „unendlichen“ Bericht? Hier ist die Situation widerholt. Die Zeit für die Erstellung von allen Berichten ist gesunken.
Der Gedächtnis Verbrauch ist auch stark gesunken. Für alle, außer PDF. Aber der Unterschied ist minimal.
Und in der tabellarischen Form:
Abmessungen für die Version 2016.4.0
|
Multi page |
Unlimited page |
||
Größe, Kb |
Zeit, ms |
Größe, Kb |
Zeit, ms |
|
Prepare |
1336 |
875 |
4040 |
875 |
|
87396 |
7031 |
81986 |
7220 |
XLSX |
23092 |
1547 |
18784 |
1734 |
HTML |
7354 |
2897 |
50576 |
1954 |
Measurements version 2017.1.0
|
Multi page |
Unlimited page |
||
Größe, Kb |
Zeit, ms |
Größe, Kb |
Zeit, ms |
|
Prepare |
1020 |
735 |
1088 |
703 |
|
85482 |
7167 |
82654 |
7149 |
XLSX |
16512 |
1359 |
16228 |
1640 |
HTML |
2445 |
2725 |
9180 |
1890 |
Wie wir sehen, ist die Situation in der neuen Version verbessert. Der Verbrauch vom Gedächtnis für den HTML Bericht mit unendlicher Seite mehr als in fünf Mal gesunken! Das sind meinst verwendete Bericht für Web.
Was ist drin geändert?
In den Versionen kleiner als 2016.4.4 verwendet man die Methode ExportPage. Er erhält die ganze Seite, macht einen Gang durch alle Objekte und speichert sie ins gewählte Format.
Weiter löscht man diese Seite vom Gedächtnis und nimmt nächste.
Wenn Sie einen nicht so großen Bericht haben, dann merken Sie keine Probleme. Aber mit der Veröffentlichung von „unendlichen“ Seiten, erscheinen die Schwierigkeiten mit dem Gedächtnis Verbrauch.
Auf diesen Gründen traf man eine Entscheidung, den Band orientierten Export zu organisieren. Das hilft, den Gedächtnis Verbrauch zu minimieren. Der Kern des Berichts Engine wurde geändert. Das Problem mit den Matrizen ist schon nicht gelöst, weil man diese Objekte nur auf einer Band lagert und diese Objekte solche Große haben, die steigen kann. Beim Testen sehen wir, dass jetzt man viel mehr weniger Ressourcen braucht, um einen Bericht mit den „unendlichen“ Seiten zu erstellen. Aber die Zeit für die Erstellung ist nicht wesentlich gestiegen. Nicht so wesentlich. Aber für den HTML Export bekommt man gute Ergebnisse und für die Kunden, die Web Berichte verwenden, sind das wirklich gute Nachrichten.