Замедление работы приложения - PullRequest
1 голос
/ 12 июля 2011

Я пытаюсь использовать apache bench для сравнения моего приложения, и я получаю "интересные" результаты

При просмотре журналов из моего приложения и результатов работы Apache Bench выявляется большая дискретность. Я говорил об этом как о задержке в сети, но при тестировании «localhost» все еще существует несоответствие.

Как я могу определить, где находится задержка, поскольку она не связана с сетью и не основана на моем коде.

AB Отчеты

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.6      0       2
Processing:   849 1353 511.1   1247    3233
Waiting:      848 1353 511.1   1247    3233
Total:        850 1353 511.4   1247    3235

Percentage of the requests served within a certain time (ms)
  50%   1247
  66%   1329
  75%   1497
  80%   1595
  90%   1890
  95%   3235
  98%   3235
  99%   3235
 100%   3235 (longest request)

Журналы приложений

0.457508658971436
0.487119069125137
0.64489275544097
0.308814075251248
0.347146275286174
0.413624988232478
0.346384754750842
0.440318102805972
0.383319550604894
0.501201249649599
0.546330090455061
0.324228916712541
0.503295781085244
0.258641210789654
0.419751448936304
0.344909658677117
0.368373660208557
0.391326015130321
0.408486124472911
0.432033417312903
0.841326557573717
0.380724921354457
0.982096568223106
0.988279723010904
0.477995521167366
0.553187274907863
0.604180103806168
0.605961767889521
0.5603846238645
0.469985557007126
0.602743853678869
0.613931136285929
0.518576586533195
0.589374548765836
0.541912501430476
0.56989243172475
0.516491854075027
0.409568911484087
0.245887841603729
3.22576074186659

Мой код

    public void ProcessRequest(HttpContext context)
    {
        var fullTimer = new utilities.HiPerfTimer();
        fullTimer.Start();
        // CUSTOM CODE WENT HERE
        fullTimer.Stop();
        System.Diagnostics.Debug.WriteLine(fullTimer.Duration);
    }

1 Ответ

0 голосов
/ 12 июля 2011

Я бы определенно смотрел на что-то вроде профилировщика. Я использовал Профилировщик производительности Redgate ANTs , чтобы протестировать мой код, который работал медленно. Несмотря на то, что я думал, что код довольно прост, он показал мне, что одна строка занимала 48% времени выполнения.

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

...