Измерение производительности в распределенной системе (Java + C#)
У меня есть распределенная система с сервером, написанным на Java и клиентом, написанным на C#. Я хочу провести некоторые измерения производительности в этой системе, например, "Сколько времени занимает одна поездка туда и обратно?" или "Сколько времени между отправкой запроса и вычислением значения ответа?".
Моей первой попыткой было напечатать временные метки в определенных ситуациях на сервере и клиенте, а затем вычислить разницу между двумя временными метками, чтобы получить длительность.
НО... когда я запускал тест, я заметил, что иногда разница между двумя временными метками (AB) была отрицательной, даже если временная метка B была создана до временной метки A. (одна из временных меток была создана на сервере, другая - на клиент) Так что я думаю, что способ создания меток времени не совсем то же самое.
У кого-нибудь есть идея, как я могу сделать это правильно?
Я надеюсь, что смог объяснить мою проблему. Если есть какие-либо вопросы, пожалуйста, дайте мне знать в комментариях.
РЕДАКТИРОВАТЬ: дополнительная информация о настройке
Клиент C# работает на моем локальном ПК. Java-сервер работает на виртуальной машине, которая сама находится на моем ПК.