Я работаю, чтобы попытаться улучшить существующий проект winforms, который у нас здесь на работе.
Я сейчас немного зациклен на идеях, поэтому я подумал, что изложу здесь некоторые детали и посмотрим, что люди могут предложить.
Форма работает так:
У нас есть список (полученный из БД), который определяет, какие элементы управления должны быть созданы с использованием полностью определенных пространств имен.
Элементы управления (в основном пользовательские элементы управления) создаются поочередно с помощью отражения и в конечном итоге добавляются в панель на форме.
Теперь каждый элемент управления может содержать больше элементов в древовидной иерархии элементов управления.
Каждый элемент управления получает свою собственную инициализацию, и, в конце концов, DataSet присваивается форме (и всем элементам управления) как DataSource,
с привязкой данных, добавляемой к каждому из них.
Особенно, в некоторых случаях мы привязываем определенную строку к элементу управления, а не к DataTable / Set.
Поэтому ожидайте, что вызовы BindingManager Position определят точную строку и т. Д.
Имея около 30 пользовательских элементов управления, мы получаем прекрасную производительность около 10 секунд, чтобы открыть новую форму,
где DataSet едва содержит какие-либо данные. Связывание занимает примерно 3-4 секунды.
В сложном состоянии данных, мы говорим о 30-40 секундах времени открытия,
с переплетом занимает примерно половину времени.
Теперь, это очень упрощено, и я держу пари, что у нас есть много нашего собственного кода, вызывающего некоторые замедления,
и я профилировал это, чтобы знать некоторые пятна.
Но главная проблема производительности, похоже, заключается в связывании.
Я бы хотел услышать несколько советов о том, как провести детализацию и найти проблемы с производительностью такого рода,
особенно способ разобраться в беспорядке, который состоит из сотен привязок.