|
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 3
|
|||||||||||
Постоянное увеличение памяти и ошибка в итоге07.01.2013, 22:51. Показов 874. Ответов 5
Метки нет (Все метки)
Здравствуйте. Помогите пожалуйста разобраться. Пишу программу. Программа включает в себя следующие операции: снимок области экрана, сравнение снимка с образцом (побитовое), клик по определенной области экрана. Это основные действия. Действия выполняются по таймерам. В программировании я не силен, поэтому, вначале, правильность написания каждой операции проверялось в отдельности по нажатию на кнопку.Потом вся последовательность проверилась по нажатию. Все работало как нужно. Всего программа включает 3 таймера. 1-й и 2-й таймеры перезапускают друг друга по условию. Описание работы:
Нажимаем кнопку "Старт" (Запускается Таймер 1 и Таймер 3.) По Таймеру 1(500 мс): Сделать снимок Области 1 Сравнить с Образцом 1 Если снимок не совпадет с Образцом 1, то делаем снимок Области 2, сохраняем его, останавливаем Таймер 1 и запускаем Таймер 2 Если снимок совпадает с Образцом 1,то Таймер 1 перезапускается По Таймеру 2(500 мс): Сделать снимок Области 1 Сравнить с Образцом 1 Если снимок совпадает с Образцом 1, то останавливаем Таймер 2 и запускаем Таймер 1 Если снимок не совпадает с Образцом 1,то Таймер 2 перезапускается По Таймеру 3(500 мс): Сделать снимок Области 3 Сравнить с Образцом 3 Если снимок совпадает с Образцом 3, то таймер перезапускается. Если снимок не совпадает с Образцом 3, то происходит клик мышкой (рандомайзом в заданных пределах), таймер перезапускается. Повторюсь, в одиночном исполнении все работает нормально. Снимки экрана, которые сравниваются с образцами постоянно сохраняются под одним и тем же именем (перезаписываются). Снимок Области 2 сохраняется всегда под разными именами (в качестве их используется текущее значение времени). Каждый снимок занимает около 1 кб. Все координаты снимков берутся из полей Edit. Причем, все задается до Старта и в процессе работы не изменяется.Все три таймера 500 мс. После считывания образца и нового снимка, значения каждого байта(в двоичной форме) загоняется в таблицу, и сравнивается. Код программы: Unit1.cpp
Примерно через 35 минут после запуска - вылетает ошибка Eoutofresources. Еще есть такие особенности - количество оперативной памяти, которое программа занимает при ее работе увеличивается стабильно на 4 кб в секунду(на сколько об этом можно судить по диспетчеру задач, не знаю , связано ли это - но каждый снимок занимает примерно около 1 кб.). Была мысль, что 500 мс - слишком малое время для выполнения действий (хотя, наверно тогда ошибка бы появлялась сразу после запуска) - увеличил время таймеров до 1500 мс. Время работы программы увеличилось в 3 раза, потом опять та же ошибка. (Количество оперативной памяти увеличивалось так же, на 4 кб, но уже примерно в 3 раза медленнее). На момент возникновения ошибки количество занимаемой оперативной памяти программой не критично - чуть более 10 МБ.
0
|
|||||||||||
| 07.01.2013, 22:51 | |
|
Ответы с готовыми решениями:
5
Постепенное увеличение занимаемой оперативной памяти и сбой программы Постоянное увеличение файла Журнал. |
|
|
||||||||||||||||
| 07.01.2013, 23:15 | ||||||||||||||||
Вместо
2
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 3
|
||||||||||||
| 08.01.2013, 01:39 [ТС] | ||||||||||||
|
Подскажи пожалуйста, какую библиотеку подключить, чтобы использовать функцию Realese? Никак найти не могу. ([C++ Error] Unit1.cpp(293): E2268 Call to undefined function 'Realese') Она точно именно так пишется? Есть функция Release, но если заменить
0
|
||||||||||||
|
|
||||||
| 08.01.2013, 02:16 | ||||||
'Realese' - опечатка
1
|
||||||
|
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 3
|
|
| 08.01.2013, 03:03 [ТС] | |
|
LK, Avazart
Спасибо. Оперативная память, занимаемая программой не увеличивается. Сейчас запустил, посмотрю будет ли снова ошибка вылетать или нет.
0
|
|
|
|
|
| 08.01.2013, 03:35 | |
|
Да поспешил и опечатался ReleaseDC() http://msdn.microsoft.com/ru-r... 21334.aspx
0
|
|
| 08.01.2013, 03:35 | |
|
Помогаю со студенческими работами здесь
6
Огромное постоянное выделение памяти запущенными приложениями Увеличение памяти Увеличение оперативной памяти Увеличение используемой памяти Увеличение оперативной памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|