ОБСУЖДЕНИЕ

Оптимизация программы

6 ответов 5,9 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Помогите разобраться. Написал простую программу, которая через определённый интервал времени выдаёт сообщение что надо сделать перерыв в работе. (Чтобы глаза не сильно уставали) Прога уходит в область уведомлений(там где часы) и работает в фоновом режиме. Всё работает, но прога ест слишком много ресурсов, Диспетчер задач показывает около 12 мегабайт. Весит программа 200 кб. В чём проблема? В коде, .Net (Visual studio 7.1) или в операционке (Windows XP SP 1)?
 
А каким образом программа определяет, что нужно выдавать сообщение?
Возможно именно в этом фишка - перегружаем систему частыми проверками - а не пора ли выдавать сообщение.

Это только как вариант )))
 
На главной форме NumericUpDown, там выбирается значеине в минутах. Потом свойству Interval Таймера, оно и присваивается, то есть таймер срабатывает через заданый интервал и показывает MsgBox
 
Код в студию!
 
Видимо дело не в коде, создал и построил (Release) пустую форму 10 мб. в диспетчере, был у меня написан простой текстовый квест (типо как в Косм рейнджерах) 32 мб в диспетчере. Такое ощущение что подгружается к файлу ещё весь .Net Framework. Код проги вот:

` здесь событие когда пользователь нажимает скрыть. 60000 это множитель чтобы милисек в мин перевести
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Visible = False
Timer1.Interval = NumUpDown1.Value * 60000
Timer1.Enabled = True
End Sub

` это событие таймера. frmAttention форма которая отображается (Пойдите отдохните)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim a As New frmAttention
a.ShowDialog()
End Sub

Ещё есть Notify Icon и контекст.Меню к ней, но там всё стандартное. Основные события выше.
 
Вбнет это не сюда.
 
Провёл небольшой эксперимент. Установил DirectX SDK там есть одни и теже примеры для разных языков. Приме для С# ест мегабайт чуть больше чем VB, пример на С++ ест раза в 2-3 меньше. Но не всё так однозначно, VB и C# оставляют процессор почти незагруженным, а на С++ забирает 99% вычилслительной мощности. Так что видимо для приложений предназначеных для работы в фоновом режиме VB может лучше всего и подходит. Хотя может я где-то и ошибаюсь.