• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Artmg
  • Дата начала
A

Artmg

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

Tanya

А каким образом программа определяет, что нужно выдавать сообщение?
Возможно именно в этом фишка - перегружаем систему частыми проверками - а не пора ли выдавать сообщение.

Это только как вариант )))
 
A

Artmg

На главной форме NumericUpDown, там выбирается значеине в минутах. Потом свойству Interval Таймера, оно и присваивается, то есть таймер срабатывает через заданый интервал и показывает MsgBox
 
A

Artmg

Видимо дело не в коде, создал и построил (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 и контекст.Меню к ней, но там всё стандартное. Основные события выше.
 
A

Artmg

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!