humanemulator.net — справка.
Продукт, демо и покупка — на
хуманэмулятор.рф
|
Демо
|
Купить
|
API
|
лог изменений
optimize_memory
optimize_memory(); - оптимизировать память занимаемую программой (иногда дает временный эффект и тогда стоит использовать команды или перезапуска приложения или пересоздания браузера ).После отработки функция возвращает результат своей работы в скрипт :
Пример использования
<?php // Scenario: Optimize memory usage and monitor effectiveness $xhe_host = "localhost:7010"; if (!isset($path)){ // Path to the init.php file for connecting to the XHE API $path = "../../../Templates/init.php"; // Including init.php grants access to all classes and functionality for working with the XHE API require($path); } echo "\n<span>debug->" . basename(__FILE__) . "</span>\n"; // Step: Get initial resources $beginMem = WINDOW::$debug->get_cur_mem_size(); $gdiCount = WINDOW::$debug->get_gui_resources(0); $userCount = WINDOW::$debug->get_gui_resources(1); // Step: Check memory optimization effectiveness $iterations = 5; for ($k = 0; $k < $iterations; $k++) { // Step: Create additional browser instance WEB::$browser->set_count(2); WEB::$browser->set_active_browser(1); // Example 1: Allocate memory echo "\n\nExample 1: Allocate memory\n"; for ($j = 0; $j < 2; $j++) { $curMem = WINDOW::$debug->get_cur_mem_size(); echo "Current memory: $curMem "; WEB::$browser->navigate("vk.com"); echo "Navigated to vk.com "; WEB::$browser->navigate("yandex.ru"); echo "Navigated to yandex.ru "; WEB::$browser->navigate("google.com"); echo "Navigated to google.com "; WEB::$browser->navigate("yahoo.com"); echo "Navigated to yahoo.com\n"; } // Example 2: Optimize memory echo "\nExample 2: Optimize memory\n"; $result = WINDOW::$debug->optimize_memory(); if ($result) echo "Memory optimized successfully "; else echo "Failed to optimize memory "; WEB::$browser->recreate(); $memAfter = WINDOW::$debug->get_cur_mem_size(); echo "Memory after optimization: $memAfter\n"; // Example 3: Display memory usage echo "\nExample 3: Display memory usage\n"; WEB::$browser->navigate("about:blank"); WEB::$browser->navigate("ya.ru"); WEB::$browser->navigate("yahoo.com"); $memUsage = WINDOW::$debug->get_cur_mem_size(); echo "Memory usage: $memUsage\n"; // Example 4: Display memory usage after recreation echo "\nExample 4: Display memory usage after recreation\n"; WEB::$browser->recreate(); WEB::$browser->navigate("about:blank"); WEB::$browser->navigate("ya.ru"); WEB::$browser->navigate("yahoo.com"); $memUsageAfter = WINDOW::$debug->get_cur_mem_size(); echo "Memory usage after recreation: $memUsageAfter\n\n"; // Step: Clean up browser instance WEB::$browser->recreate(); WEB::$browser->set_count(1); } // Step: Display memory usage statistics $endMem = WINDOW::$debug->get_cur_mem_size(); $deltaMem = ($endMem - $beginMem) / 1024 / 1024; $endMemMB = $endMem / 1024 / 1024; echo "Memory used: $endMemMB MB\n"; if ($deltaMem < 0) echo "Delta memory size: $deltaMem MB (memory freed)\n"; else echo "Delta memory size: $deltaMem MB (memory increased)\n"; // Step: Display GUI resource statistics $gdiEnd = WINDOW::$debug->get_gui_resources(0); $userEnd = WINDOW::$debug->get_gui_resources(1); $deltaGDI = ($gdiEnd - $gdiCount); $deltaUser = ($userEnd - $userCount); echo "GDI delta: $deltaGDI, USER delta: $deltaUser\n"; // Quit the application WINDOW::$app->quit(); ?>
# 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()
#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 = "localhost: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("\n\n"); app.quit(); } }
// подключим функциональные объекты, если еще не подключен 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>\n"); } // конец echo("\n"); // Quit app.quit();
=============================================
Debug Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.