2012-02-14 20 views
8

Próbuję ustalić, gdzie mój czas ładowania jest zużywany. Dodałem śledzenie na niemal wszystko mogę myśleć i nie jest brakującym 200ms (co stanowi ponad 50% całkowitego ładunku)Czas ładowania na stronie asp.net nie może być rozliczany za

Jak mogę wyjaśnić tego brakującego czasu

Description      Duration(ms) with Children(ms) from start(ms) 
    http://localhost:80/default.aspx 320.8  357.3    +0.0 
    CreateControlCollection   0.0   0.0    +27.2 
    OnPreInit       0.1   0.1    +27.2 
    GetVaryByCustomString    0.0   0.0    +227.0 
    Control OnInit      0.0   0.0    +232.4 
    Control OnInit      0.0   0.0    +232.4 
    Control OnInit      0.0   0.0    +234.2 
    Control OnInit      0.0   0.0    +234.2 
    Control OnInit      0.0   0.0    +234.2 
    GetVaryByCustomString    0.0   0.0    +234.6 
    Control OnInit      0.0   0.0    +234.9 
    Control OnInit      0.0   0.0    +234.9 
    GetVaryByCustomString    0.0   0.0    +235.0 
    GetVaryByCustomString    0.0   0.0    +235.3 

Odpowiedz

2

wygląda podobnie jak nierozliczony-czas jest zużywany pomiędzy PreInit (zdarzenie tylko do strony) i Init dla kontroli. Kilka pomysłów:

  1. Inicjatorem kontroli jest potencjalny winowajca. Zdarzenie kontrolne Init jest uruchamiane po zakończeniu inicjowania kontroli, a nie wcześniej.
  2. Czy używasz motywów ASP.NET lub skórek? Jeśli tak, są one stosowane między PreInit i Init.
  3. Należy pamiętać, że zdarzenia Init są uruchamiane od dołu do góry; dzieci przed rodzicami.
  4. Problemy z gwintowaniem są możliwą przyczyną luk czasowych. Czy twoje pomiary pochodzą z systemu, który w innym przypadku jest bezczynny? Czy są jakieś operacje we/wy na początku cyklu życia strony?
  5. Czy używasz stron wzorcowych? Jeśli tak, pamiętaj, że są one implementowane jako kontrola podrzędna strony.
Powiązane problemy