|
1 / 1 / 0
Регистрация: 03.02.2012
Сообщений: 22
|
|||||||||||
Как можно оптимизировать код?10.07.2013, 12:41. Показов 1429. Ответов 9
Метки нет (Все метки)
Здравствуйте, помогите пожалуйста ускорить работу программы.
Программа читает журнал событий винды, и выводит в gridControl. На форме есть кнопка, при нажатии на которую создается элемент этого класса, а потом вызывается метод FilterAndShowEvents. Этот класс отвечает за чтение и вывод журнала. ListOfEvents - открывает журнал с указанным именем и переносит записи в список Log. FilterAndShowEvents - удаляет записи с дублирующимися сообщениями, и заносит в gridControl. Выполняется очень долго, подскажите что можно исправить. Кликните здесь для просмотра всего текста
Для хранения единичной записи используется класс EventLogItem, а для занесения в таблицу EventRecord, но там нет ничего нагромажденного как здесь, так нечего улучшать, так что проблема в этом классе. Добавлено через 2 часа 35 минут Немного изменил метод FilterAndShowEvents , работает на 30 секунд быстрее, но все равно долго. Нынешняя версия выглядит так: Кликните здесь для просмотра всего текста
0
|
|||||||||||
| 10.07.2013, 12:41 | |
|
Ответы с готовыми решениями:
9
Насколько можно оптимизировать этот программный код? |
|
1 / 1 / 0
Регистрация: 03.02.2012
Сообщений: 22
|
||||||
| 10.07.2013, 14:46 [ТС] | ||||||
|
Спасибо за совет, но я уже в программу встроил таймер чтобы смотреть что да как.
Убрал все, что можно было безболезненно убрать, работает гораздо быстрее, осталось убрать/заменить один кусок кода и все. Подскажите чем менее затратным можно заменить вот эту часть?
Я подумал, что гораздо лучше будет удалить дубликаты из списка до цикла методом Distinct(), но он работает для просто списков, а не для списка классов. Вы не знаете, можно ли как-нибудь применить его к такому списку?
0
|
||||||
|
52 / 45 / 4
Регистрация: 07.10.2010
Сообщений: 95
|
|||||||||||
| 10.07.2013, 15:10 | |||||||||||
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 03.02.2012
Сообщений: 22
|
|
| 11.07.2013, 07:18 [ТС] | |
|
Сделал свой Comparer для класса, как написано вот здесь http://msdn.microsoft.com/en-u... s.90).aspx, стало гораздо быстрее работать.
Но работа с прогрессбаром занимает очень много времени. У меня в метод передается прогресс бар, и там в циклах увеличиваю позицию на 1.Может его можно как-нибудь оптимальнее выполнить?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 11.07.2013, 11:31 | ||
|
Еще лучше, заведите 2 переменных и один таймер с интервалом 100мс: в переменных храните общее количество записей и обработанное количество. А по тику таймера высчитывайте из этих переменных прогресс и обновляйте интерфейс (10 раз в секунду — более чем достаточно для оконного приложения).
1
|
||
|
1 / 1 / 0
Регистрация: 03.02.2012
Сообщений: 22
|
|
| 11.07.2013, 12:14 [ТС] | |
|
kolorotur, спасибо за совет, сделал обновление каждый сотый раз, работает гораздо быстрее.
0
|
|
|
|
|||||||||||
| 11.07.2013, 17:35 | |||||||||||
|
Можно попробовать создать
0
|
|||||||||||
| 11.07.2013, 17:35 | |
|
Помогаю со студенческими работами здесь
10
Как оптимизировать код?
Можно ли, и если можно то как перевести код SQL в код С# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|