Wydajność Chrome vs Firefox

Witam,

Mam sobie małą, prostą aplikację. Posiada tabelkę z danymi oraz przyciskami (w postaci button-link w tejże tabelce). Po naciśnięciu przycisku aplikacja ma za zadanie pokazać pop-up (klasa Window) przedstawiającą pewne dane (z możliwością edycji).

I teraz tak: na Chromie okno wyskakuje niemalże natychmiast (czas oczekiwania - max 1,5s). Z kolei to samo okienko na przeglądarce Firefox to już do 4 sekund oczekiwania na pop-up.

Zastanawiam się, czy to kwestia wydajności samej przeglądarki, czy jednak błędnego layoutu modalnego okna (po otwarciu okna liczba div’ów wynosi

document.getElementsByTagName('div').length 1076 )

Przyznam, że okno modalne zawiera sporo Vertical i Horizontal Layoutów - eksperymentalnie podmieniłem wszystkie na CssLayout, ale i to nie pomogło.

  1. Czy problem leży w przeglądarce (w tym wypadku FF) czy raczej w błędnym layoucie aplikacji?
  2. Czy może ktoś podać narzędzia, które dokładnie pozwolą mi zlokalizować problem?

Wersja Vaadina: 7.7.7

Dorzucam wyniki debuga (?debug w URL - może ktoś rozumie te magiczne linijki to mi wyjaśni :slight_smile: ):

929ms RPC invocations to be sent to the server:
929ms   412 (class com.vaadin.client.ui.button.ButtonConnector) :
930ms      com.vaadin.shared.ui.button.ButtonServerRpc.click([LEFT,1144,234,false,false,false,false,1,35,9]
)
933ms Sending xhr message to server: {"csrfToken":"f8db2649-aeb3-4d9f-8b3e-193a9c50a983","rpc":[["412","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"altKey":false,"button":"LEFT","clientX":1144,"clientY":234,"ctrlKey":false,"metaKey":false,"relativeX":35,"relativeY":9,"shiftKey":false,"type":1}]
]],"syncId":4,"clientId":4}
1190ms Server visit took 257.885ms
1195ms JSON parsing took 3.505ms
1199ms Received xhr message: for(;;);[223 652 znaków]

1202ms Handling message from server
1202ms  * Handling resources from server
1203ms  * Handling type inheritance map from server
1204ms Handling type mappings from server
1204ms Handling resource dependencies
1205ms  * Handling meta information
1205ms  * Creating connectors (if needed)
1418ms  * Updating connector states
1469ms  * Handling locales
1469ms  * Updating connector hierarchy
1478ms  * Sending hierarchy change events
1722ms  * Running @DelegateToWidget
1724ms  * Sending state change events
2158ms  * Passing UIDL to Vaadin 6 style connectors
2653ms  * Performing server to client RPC calls
2657ms * Unregistered 0 connectors
2658ms handleUIDLMessage: 1452 ms
2658ms Starting layout phase
2751ms Measured 137 non connector elements
2980ms Pass 1 measured 246 elements, fired 0 listeners and did 48 layouts.
3180ms Pass 2 measured 58 elements, fired 0 listeners and did 15 layouts.
3256ms Did overflow fix for 5 elements
3349ms Pass 3 measured 33 elements, fired 0 listeners and did 5 layouts.
3428ms Did overflow fix for 10 elements
3524ms Pass 4 measured 21 elements, fired 0 listeners and did 1 layouts.
3669ms Did overflow fix for 5 elements
3826ms Pass 5 measured 6 elements, fired 0 listeners and did 1 layouts.
4033ms Did overflow fix for 3 elements
4299ms Pass 6 measured 3 elements, fired 0 listeners and did 0 layouts.
4299ms No more changes in pass 7
4425ms Total layout phase time: 1766ms
4426ms  * Dumping state changes to the console
4448ms UIDL: undefined
4649ms  Processing time was 3448ms
4649ms Referenced paintables: 350