Программа на C #: Файловый ввод / вывод случайно замедляется на x64 - PullRequest
1 голос
/ 16 февраля 2011

У меня есть программа, которая имеет два разных режима, автономный режим и режим клиент-сервер. Часть автоматизированной среды тестирования для этого выполняет тестирование файлов импорта / экспорта данных, которые рассчитывает программа, умножает импорт / экспорт, скажем, на 100 итераций и сравнивает результат времени с некоторыми базовыми результатами.

Среда тестирования будет тестировать на x86 как для автономного, так и для основного сервера, а затем на x64 для обоих.

В последнее время я столкнулся с особой проблемой, когда 3 из этих 4 тестов проходят, но для 1 из них он не проходит. Значение 1, которое дает сбой, всегда равно x64, и наиболее интересным является то, что один из тестов x64 не пройден, зависит от порядка, в котором они выполняются, то есть если тест x64 для автономного запускается первым, а клиент-сервер - вторым, клиент -сервер в конечном итоге занимает значительно больше времени, но если я переключу порядок, это будет автономно, что займет значительно больше времени.

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

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

Чтобы еще больше обойти возможные проблемы с жестким диском, я также начал только время импортировать / экспортировать в поток, а не в файл, но это не имело никакого значения.

Я озадачен тем, что может быть причиной этого. Любая помощь будет оценена.

Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2011

Захватывали ли вы Счетчики производительности (perfmon.exe) во время выполнения тестов?Я бы проверил такие вещи, как счетчики GC, процессор и т. Д.

...