optimize_memory

optimize_memory()
Данная команда позволяет оптимизировать память занимаемую программой (иногда дает временный эффект и тогда стоит использовать команды или перезапуска приложения или пересоздания браузера ).
После отработки команда возвращает результат своей работы в робот:
  • true - операция выполнена успешно
  • false - во время операции произошли ошибки



Примеры использования (php)

<?php $xhe_host = "127.0.0.1:7013";
 
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/init.php";
require($path);
 
// ресурсы
echo "<hr><font color=blue>debug->".basename (__FILE__)."</font><hr>";
 
// память
$begmem=$debug->get_cur_mem_size();
$gdi=$debug->get_gui_resources(0);
$user=$debug->get_gui_resources(1);
 
// проверка эффективности чистки памяти
$num=0;
for ($i=0;$i<5;$i++)
{
   // создадаим вкладку
    $browser->set_count(2);
	$browser->set_active_browser(1);
 
	// 1 
	echo "1. Выделим память : ";
	for ($j=0;$j<2;$j++)
	{
		echo $debug->get_cur_mem_size()." ";
		echo $browser->navigate("vk.com")." ";
		echo $browser->navigate("yandex.ru")." ";
		echo $browser->navigate("google.com")." ";
		echo $browser->navigate("yahoo.com")."<br>";
	}
 
	// 2 
	echo "2. Оптимизируем память : ";
	echo $debug->optimize_memory()." ";
   $browser->recreate();
	echo "<font color=green>".$debug->get_cur_mem_size()."</font><br>";
 
	// 3 
	echo "3. Выведем используемую память : ";
	$browser->navigate("about:blank");$browser->navigate("ya.ru");$browser->navigate("yahoo.com");
	echo "<font color=blue>".$debug->get_cur_mem_size()."</font><br>";
 
	// 4 
	echo "4. Выведем используемую память : ";
	$browser->recreate();$browser->navigate("about:blank");$browser->navigate("ya.ru");$browser->navigate("yahoo.com");
	echo "<font color=red>".$debug->get_cur_mem_size()."</font><br><br><br>";
 
   // закроем вкладку
   $browser->recreate();
   $browser->set_count(1);
   $num++;
	//if ($num%5==0)
		//$debug->clear_tab_content("Отладка");
 
}
 
// выведем прирост памяти
$endmem=$debug->get_cur_mem_size();
$deltamem=($endmem-$begmem)/1024/1024;
$endmem=$endmem/1024/1024;
echo "Memory used $endmem : ";
if ($deltamem<0)
	echo "<font color=green>delta memory size: ".$deltamem."</font><br>";
else
	echo "<font color=red>delta memory size: ".$deltamem."</font><br>";
echo "GUI: ";
 
$gdi_e=$debug->get_gui_resources(0);
$user_e=$debug->get_gui_resources(1);
$deltagdi=($gdi_e-$gdi);
$deltauser=($user_e-$user);
echo "gdi: $deltagdi user: $deltauser ";
 
// конец
echo "<hr><br>";
 
// Quit
$app->quit();
?>

Примеры использования (cs)

#region using
 
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading;
 
using XHE;
using XHE.XHE_DOM;
using XHE.XHE_System;
using XHE.XHE_Window;
using XHE.XHE_Web;
 
#endregion
 
 class Program:XHEScript
 {
	  static void Main(string[] args)
	  {
			// init XHE
			server="127.0.0.1:7010";
			InitXHE();
 
			// начало
			echo("<hr><font color=blue>debug.optimize_memory</font><hr>");
 
			// 10 секунд на страницу
			browser.set_wait_params(10,1);
			// проверка эффективности чистки памяти
			for (int k=0;k<20;k++)
			{
				// 1 шаг
				echo("1. Выделим память : ");
				for (int i=0;i<10;i++)
				{
					echo(debug.get_cur_mem_size()+" ");
					echo(browser.navigate("about:blank")+" ");
					echo(browser.navigate("ya.ru")+" ");
					echo(browser.navigate("yahoo.com")+"<br>");
				}
 
				// 2 шаг
				echo("2. Оптимизируем память : ");
				echo(debug.optimize_memory()+" ");
				echo("<font color=green>"+debug.get_cur_mem_size()+"</font><br>");
 
				// 3 шаг
				echo("3. Выведем используемую память : ");
				for (int i=0;i<10;i++)
				{
					echo(debug.get_cur_mem_size()+" ");
					echo(browser.navigate("about:blank")+" ");
					echo(browser.navigate("ya.ru")+" ");
					echo(browser.navigate("yahoo.com")+"<br>");
				}
				echo("<font color=blue>"+debug.get_cur_mem_size()+"</font><br>");
 
				// 4 шаг
				echo("4. Выведем используемую память : ");
				browser.recreate();
				for (int i=0;i<10;i++)
				{
					echo(debug.get_cur_mem_size()+" ");
					echo(browser.navigate("about:blank")+" ");
					echo(browser.navigate("ya.ru")+" ");
					echo(browser.navigate("yahoo.com")+"<br>");
				}
				echo("<font color=blue>"+debug.get_cur_mem_size()+"</font><br>");
			}
 
			// конец
			echo("<hr><br>");
 
			app.quit();            
	  }
}

Примеры использования (js)

// подключим объект для управления эмулятором, если еще не подключен
xhe_host="127.0.0.1:7014";
echo=require("../../../Templates JS/init.js");
 
// начало
echo("<hr><font color=blue>debug.optimize_memory</font><hr>");
 
// включим ActiveX
browser.enable_activex(true);
 
// проверка эффективности чистки памяти
//while (true)
{
	// 1 шаг
	echo("1. Выделим память : \n\n");
	for (var i=0;i<10;i++)
	{
		echo(debug.get_cur_mem_size()+" ");
  	    echo(browser.navigate("about:blank")+" ");
		echo(browser.navigate("ya.ru")+" ");
		echo(browser.navigate("yahoo.com")+"<br>");
	}
 
	// 2 шаг
	echo("\n2. Оптимизируем память : ");
	echo(debug.optimize_memory()+" ");
	echo("<font color=green>"+debug.get_cur_mem_size()+"</font><br>");
 
	// 3 шаг
	echo("3. Выведем используемую память : ");
	browser.navigate("about:blank");browser.navigate("ya.ru");browser.navigate("yahoo.com");
	echo("<font color=blue>"+debug.get_cur_mem_size()+"</font><br>");
 
	// 4 шаг
	echo("4. Выведем используемую память : ");
	browser.recreate();browser.navigate("about:blank");browser.navigate("ya.ru");browser.navigate("yahoo.com");
	echo("<font color=red>"+debug.get_cur_mem_size()+"</font><br><br>");
}
 
// конец
echo("<hr><br>");
 
// Quit
app.quit();

Примеры использования (py)

# Additional paths
import sys
sys.path.insert(0, '../../../Templates PY/')
 
xhe_host = "127.0.0.1:7010"
from xweb_human_emulator import *
 
# начало
echo("<hr><font color=blue>debug.xxxxxxxxx</font><hr>")
 
# память
begmem=debug.get_cur_mem_size()
gdi=debug.get_gui_resources(0)
user=debug.get_gui_resources(1)
 
# проверка эффективности чистки памяти
num=0
for i in range(0,5):
    # создадаим вкладку
    browser.set_count(2)
    browser.set_active_browser(1)
    # 1 
    echo("1. Выделим память : ")
    for j in range(0,2):
        echo(debug.get_cur_mem_size()," ")
        echo(browser.navigate("vk.com")," ")
        echo(browser.navigate("yandex.ru")," ")
        echo(browser.navigate("google.com")," ")
        echo(browser.navigate("yahoo.com"),"<br>")
    # 2 
    echo("2. Оптимизируем память : ")
    echo(debug.optimize_memory()," ")
    browser.recreate()
    echo("<font color=green>"+str(debug.get_cur_mem_size())+"</font><br>")
    # 3 
    echo("3. Выведем используемую память : ")
    browser.navigate("about:blank")
    browser.navigate("ya.ru")
    browser.navigate("yahoo.com")
    echo("<font color=blue>"+str(debug.get_cur_mem_size())+"</font><br>")
    # 4 
    echo("4. Выведем используемую память : ")
    browser.recreate()
    browser.navigate("about:blank")
    browser.navigate("ya.ru")
    browser.navigate("yahoo.com")
    echo("<font color=red>"+str(debug.get_cur_mem_size())+"</font><br><br><br>")
    # закроем вкладку
    browser.recreate()
    browser.set_count(1)
    num=num+1
    #if num%5==0)
        #debug.clear_tab_content("Отладка"))
 
# выведем прирост памяти
endmem=debug.get_cur_mem_size()
deltamem=(endmem-begmem)/1024/1024
endmem=endmem/1024/1024
echo("Memory used endmem : ")
if deltamem<0:
	echo("<font color=green>delta memory size: "+str(deltamem)+"</font><br>")
else:
	echo("<font color=red>delta memory size: "+str(deltamem)+"</font><br>")
echo("GUI: ")
 
gdi_e=debug.get_gui_resources(0)
user_e=debug.get_gui_resources(1)
deltagdi=(gdi_e-gdi)
deltauser=(user_e-user)
echo("gdi: deltagdi user: deltauser ")
 
# конец
echo("<hr><br>")
 
# Quit
app.quit()