Тестирование скорости рендеринга IE на конкретной странице - PullRequest
1 голос
/ 07 февраля 2009

Если моя цель состоит в том, чтобы проверить скорость рендеринга в IE конкретной веб-страницы с помощью повторных загрузок (простое использование события загрузки javascript для синхронизации и просмотра страницы не сокращает его), что было бы хорошим способом сделать это?

Моя текущая попытка была с использованием объекта IE WebBrowser в VB и C #, хотя я открыт для других предложений.

Ниже приведен простой VB-код, хотя я пробовал нечто подобное в C #. Я также пытался создать новый элемент управления веб-браузера для каждого теста (это ухудшало ситуацию). Я также попытался использовать сами события, а не цикл readystate. Во всех случаях тесты выполняются все дольше и дольше, хотя использование reload complete instread из navigate2, похоже, немного помогает, возможно, подразумевает, что проблема является своего рода исторической проблемой.

For cnt = 1 To 100
    timer = GetTickCount()
    Form1.WebBrowser1.Navigate2 "http://www.example.com"
    While Form1.WebBrowser1.ReadyState <> READYSTATE_COMPLETE And GetTickCount() - timer < 5000
        Sleep 50
        DoEvents
    Wend
    Debug.Print GetTickCount() - timer
Next

Ответы [ 2 ]

0 голосов
/ 15 апреля 2009

Я не уверен, какие события вы можете подключить к элементу управления для запуска и завершения, но вот код, который я использовал в своем модульном тесте, чтобы вычислить, сколько времени мой Двигатель потратил на обработку данных, которые я ему дал.

Stopwatch stopWatch = new Stopwatch();

stopWatch.Start();
//perform work
stopWatch.Stop();

TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                                           ts.Hours,
                                           ts.Minutes,
                                           ts.Seconds,
                                           ts.Milliseconds/10);
Console.Write(elapsedTime);

Ура! * * 1004

0 голосов
/ 19 марта 2009

Я думаю, что лучше подходить к обработке событий OnBeforeNavigate и OnDocumentComplete, которые предоставляет элемент управления Webbrowser Установите таймер в OnBeforeNavigate и остановите его в OnDocumentComplete.

Сейчас вы заняты ожиданием, что никогда не было хорошей идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...