Автор Тема: Прошу помощи по утечке памяти  (Прочитано 670 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lamenolamer [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Женский
    • Награды
  • Версия AutoIt: 3.3.14.0
Код для отлова окон с ошибками, в цикле скринит экран в 2 глобальные переменные и с периодичностью 1 и 2 секунды, в случае появления окна с ошибкой делает ещё один скрин и все три выгружает в файл. При работе ест память, в течении пары тройки минут довольно значительно и продолжает пока не кончается, причем в диспетчере задач увеличение памяти конкретного процесса не отображается, только общий рост выделенной памяти, если завершить процесс скрипта - память высвобождается. Вроде использую глобальные переменные, система Win7.
Подскажите пожалуйста как решить проблему.
Код: AutoIt [Выделить]
#include <ScreenCapture.au3>
#include <Date.au3>

Global $hWndConst
Global $lastSec
Global $lastSec1
Global $hBmp0
Global $hBmp1
Global $hBmp
Global $dif
Global $hWnd

$lastSec1 = _NowCalc()
While 1

   Example()
   sleep(300)
WEnd

Func Example()
      $dif = _DateDiff( 's',$lastSec1, _NowCalc())
     
      if $dif = 1 Then
      $hBmp0 = _ScreenCapture_Capture("")
      ElseIf $dif > 2 Then
      $hBmp1 = _ScreenCapture_Capture("")
      $lastSec1 = _NowCalc()
      EndIf

   If WinExists("[TITLE:1С:Предприятие;CLASS:V8NewLocalFrameBaseWnd]", "") Then $hWnd = WinGetHandle("[TITLE:1С:Предприятие;CLASS:V8NewLocalFrameBaseWnd]", "")
   If $hWnd = $hWndConst OR $hWnd = 0 Then Return 0
   $hWndConst = $hWnd
    sleep(300)
    ScreenShot()
 EndFunc   ;==>Example

 Func ScreenShot()
    $hBmp = _ScreenCapture_Capture("")
    _ScreenCapture_SaveImage(@DesktopDir & "\Screens_Error\ERShot_"&@hour&@min&@sec&"_1.jpg", $hBmp1)
    _ScreenCapture_SaveImage(@DesktopDir & "\Screens_Error\ERShot_"&@hour&@min&@sec&"_2.jpg", $hBmp0)
    _ScreenCapture_SaveImage(@DesktopDir & "\Screens_Error\ERShot_"&@hour&@min&@sec&"_3.jpg", $hBmp)
EndFunc   ;==>Example


Русское сообщество AutoIt

Прошу помощи по утечке памяти
« Отправлен: Июль 21, 2018, 16:23:12 »

Помечен как лучший ответ пользователем lamenolamer Отправлен Июль 23, 2018, 07:21:22

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 407
  • Репутация: 94
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Прошу помощи по утечке памяти
« Ответ #1, Отправлен: Июль 21, 2018, 17:59:00 »
Цитата: Справка
Если параметр $sFileName - пустая строка, то функция захватывает экран и возвращает дескриптор HBITMAP. Этот дескриптор должен быть освобожден с помощью _WinAPI_DeleteObject. Если в параметре $sFileName указан путь, то изображение сохраняется в файл и ничего не возвращает.

Оффлайн lamenolamer [?]

  • Новичок
  • *
  • Сообщений: 2

  • Автор темы
  • Репутация: 0
  • Пол: Женский
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Прошу помощи по утечке памяти
« Ответ #2, Отправлен: Июль 23, 2018, 07:20:56 »
Спасибо, идеально!

Русское сообщество AutoIt

Re: Прошу помощи по утечке памяти
« Ответ #2 Отправлен: Июль 23, 2018, 07:20:56 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3471 Просмотров
Последний ответ Декабрь 19, 2009, 20:32:04
от Sirioga
4 Ответов
2243 Просмотров
Последний ответ Январь 06, 2012, 19:02:06
от Black_Night
0 Ответов
2357 Просмотров
Последний ответ Июль 21, 2012, 10:06:28
от madmasles
3 Ответов
2482 Просмотров
Последний ответ Январь 23, 2013, 11:51:21
от WSWR
4 Ответов
3574 Просмотров
Последний ответ Январь 25, 2013, 13:49:52
от inververs
8 Ответов
3485 Просмотров
Последний ответ Август 12, 2013, 18:57:39
от Zalman1980
4 Ответов
1830 Просмотров
Последний ответ Март 14, 2014, 14:41:30
от Pero
3 Ответов
1617 Просмотров
Последний ответ Октябрь 28, 2014, 15:43:06
от InnI
7 Ответов
1218 Просмотров
Последний ответ Октябрь 15, 2015, 17:08:38
от NuclearBeer
10 Ответов
1549 Просмотров
Последний ответ Апрель 28, 2017, 13:59:47
от ra4o