2016-05-23 18 views
2

vor allem benutze ich Vaadin 7 und Eclipse Mars.Vaadin messen Renderzeit

Ich möchte ein samll Performance-Test programmieren und hier ist mein Problem:

ich eine Liste und einen Knopf haben. Nachdem die Schaltfläche geklickt wurde, werden 1000 Elemente hinzugefügt und in der Liste angezeigt. Jetzt möchte ich die Zeit sehen, die benötigt wurde, um die Elemente in ms zu rendern. Ich spare also die Zeit nach dem Klick auf den Button und nachdem ich alle Einträge zur Liste hinzugefügt und subtrahiert habe. Die benötigte Zeit wird jetzt in der Taste angezeigt, aber immer ca. 2 ms und 10 ms. Das kann nicht sein? Wie kann ich die tatsächliche Zeit messen?

tl; dr: Wie kann ich die Renderzeit für eine Liste mit 1000 Artikeln richtig messen?

Dies geschieht nach einem Klick auf den Button:

public void List(ListSelect select, Button button){ 
     long millis = System.currentTimeMillis(); 
     select.setRows(1000); 

     select.addItems("item1", "item2", "item1000"); 

     long millis2 = System.currentTimeMillis(); 
     button.setCaption(millis2 - millis +" ms"); 
    } 

Antwort

4

Die Rendering-Zeit mit dem Vaadin Debug-Fenster zu sehen ist. Hängen Sie ?debug an den Anwendungsstamm an (app/?debug#!home). Dann können Sie das Debug-Fenster in der unteren rechten Ecke sehen. Das erste Symbol auf dem Menü zeigt das Protokoll an. Die Zeile Processing time was ...ms zeigt die Renderzeit Ihres Browsers an. Genauer gesagt ist dies die Zeit, die der Browser benötigt, um die JSON-Antwort zu verarbeiten, die in HTML gerendert wird.

+0

Funktioniert! Aber ist es möglich, die Verarbeitungszeit in einer Variablen zu speichern? – JeffStrongman

+0

Mir ist gerade aufgefallen, dass das Rendering mit '' debug' viel langsamer ist. Gibt es eine Lösung/Abhilfe? – JeffStrongman

+1

Eine Alternative wäre zum Beispiel Chrome Developer Tools zu verwenden. In der Konsole würden Sie auch die 'Verarbeitungszeit war ...' als einen Eintrag sehen, ohne Vaadins Debug-Fenster zu benutzen. –