У меня есть однопоточное приложение формы Windows, написанное с VB.NET и предназначенное для Framework 1.1 . Программное обеспечение обменивается данными с внешними платами через последовательный интерфейс и состоит в основном из конечного автомата 1006 *, который выполняет некоторые тесты и работает в цикле с таймером и интервалом 50 мс.
Обратная связь с пользовательским интерфейсом осуществляется через некоторые пользовательские события, возникающие во время тестов.
Проблема, которая сводит меня с ума, заключается в том, что производительность немного снижается с течением времени, в частности после 1200/1300 тестовых операций. Занимаемая память не увеличивается со временем, эта проблема проявляет интерес только к процессору.
Странно то, что при нацеливании на фреймворк 2.0 и использовании идентичного кода у меня нет этой проблемы.
Я знаю, что это сложно, не глядя на код, но у вас есть предложения, как мне решить проблему?
РЕДАКТИРОВАТЬ : Я действительно растерялся, после пары интенсивных работ приложение начинает замедляться. Выбранная строка связана с ее процессом, если это может помочь.
EDIT2 : с помощью диспетчера задач Windows я обнаружил, что счетчик «Ручки» увеличивается на на 1 в конце каждой операции. Я не знаю, является ли это причиной, но приложение начинает замедляться, когда счетчик меток достигает примерно 1500 меток. Я проверил, что все необходимые RemoveHandler вызываются после каждой операции. Есть идеи?
EDIT3 : Я обнаружил, что проблема с дескрипторами генерируется библиотекой C ++ , которую мы используем для связи с последовательным устройством. Это происходит как в .NET 1.1, так и .NET 2.0. Разница, и это странно, заключается в том, что если целевое .NET 1.1 приложение замедляется / замораживается вместо .NET 2.0, я достиг более 30000 дескрипторов без потери производительности. Теперь я не знаю, действительно ли проблема вызвана этими потерянными дескрипторами, я попытаюсь попросить разработчиков библиотеки C ++ исправить ее и посмотреть, решит ли она проблему, возникшую у меня в .NET 1.1.
полное изображение здесь
альтернативный текст http://img341.imageshack.us/img341/6923/process.png