В настоящее время я пишу приложение Windows Form, в котором я подключаюсь к серверу и отправляю «x» «действия» в секунду на сервер, чтобы провести его стресс-тестирование.После остановки создается журнал .txt с подробным описанием количества отправленных действий и времени, когда оно было отправлено.
Я пытаюсь проверить результаты, сравнивая разницу между счетчиком в журнале через 1 секунду.Однако после этого я обнаружил несоответствие между тем, что было в файле журнала, и предполагаемым количеством действий, которые нужно отправить.
Например, при попытке отправить 50 действий в секунду несоответствия отсутствуют.При попытке 100 действий в секунду, только около 90 регистрируются в .txt, но при попытке 1000 действий регистрируется 1300.
Изначально я полагал, что приложение сталкивалось с проблемами производительности, в результате чего регистрировалось только 90 действий.при попытке отправить 100. Но я полагаю, что это не тот случай, когда при попытке отправки 1000 действий регистрируется 1300.Кроме того, я проверил проблемы с производительностью, используя Visual Studio Profiler, и ничего не заметил.
У кого-нибудь есть идеи по поводу того, что может быть причиной этого несоответствия?
КОД НИЖЕ:
DateTime startTime;
TimeSpan executionTIme;
while (sendingActions)
{
startTime = DateTime.Now;
action = CreateNewAction();
if (action != null)
{
actionCount++;
SendAction(action);
//Write to log
tw.WriteLine(DateTime.Now.ToString("h:mm:ss tt.fffffff") + " " + actionCount;
}
executionTime = DateTIme.Now.Subtract(startTime);
//Sleeping thread to achieve "x" actions/second specified in ActionTime textbox
Thread.Sleep(Convert.ToInt32(1 / (Convert.ToDouble(txtActionTime.Text)) * 1000 - executionTime.TotalMilliseconds));
}