Window / debug



optimize_memory

optimize_memory(); - оптимизировать память занимаемую программой (иногда дает временный эффект и тогда стоит использовать команды или перезапуска приложения или пересоздания браузера ).

После отработки функция возвращает результат своей работы в скрипт :
  • true – операция выполнена успешно
  • true – во время операции произошли ошибки

    Пример использования (PHP):
    ===============================================================

    <?php $xhe_host = "127.0.0.1:7017";
     
    // подключим объект для управления эмулятором, если еще не подключен
    if (!isset($path))
      $path="../../../Templates/xweb_human_emulator.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 ($i=0;$i<2;$i++)
    	{
    		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();
    ?>

    Пример использования (Python):
    ===============================================================

    ?# 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()

    Пример использования (C#):
    ===============================================================

    #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/xweb_human_emulator.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();

    =============================================
    Debug     Объекты    DOM  System  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .