<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JSToolbox - все о JavaScript &#187; Утечки памяти</title>
	<atom:link href="http://www.jstoolbox.com/category/utechki-pamyati/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jstoolbox.com</link>
	<description>Блог о программировании вообще и о JavaScript в частности, уроки, статьи, заметки, база знаний.</description>
	<lastBuildDate>Wed, 28 Jul 2010 22:33:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Обнаружение утечек памяти в Internet Explorer</title>
		<link>http://www.jstoolbox.com/2008/02/12/obnaruzhenie-utechek-pamyati-v-internet-explorer/</link>
		<comments>http://www.jstoolbox.com/2008/02/12/obnaruzhenie-utechek-pamyati-v-internet-explorer/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 21:35:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Отладка]]></category>
		<category><![CDATA[Утечки памяти]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/2008/02/12/obnaruzhenie-utechek-pamyati-v-internet-explorer/</guid>
		<description><![CDATA[Утечки памяти в браузерах &#8211; распространенное явление, и особенно подвержен этому напастью Internet Explorer. Для обнаружения утечек памяти в IE существует замечательная утилита sIEve, которая способна загружать страницу, производить мониторинг за выделение памяти, отображать свойства тэгов и др. Главное окно приложения показано на рисунке:

Главное окно sIEve
Для начала работы с приложением нужно ввести адрес тестируемой страницы [...]]]></description>
			<content:encoded><![CDATA[<p>Утечки памяти в браузерах &#8211; распространенное явление, и особенно подвержен этому напастью Internet Explorer. Для обнаружения утечек памяти в IE существует замечательная утилита <a href="http://home.wanadoo.nl/jsrosman/">sIEve</a>, которая способна загружать страницу, производить мониторинг за выделение памяти, отображать свойства тэгов и др. Главное окно приложения показано на рисунке:</p>
<p>
<div class="thumbnail"><a href='http://www.jstoolbox.com/wp-content/uploads/2008/02/ie_mem1.jpg' title='Главное окно sIEve'><img src='http://www.jstoolbox.com/wp-content/uploads/2008/02/ie_mem1.thumbnail.jpg' alt='Главное окно sIEve' /></a><br/><span class="desc">Главное окно sIEve</span></div>
<p>Для начала работы с приложением нужно ввести адрес тестируемой страницы в строку <strong>Address</strong> и нажать кнопку <strong>Go</strong>. После загрузки страницы, вы увидите в панели <strong>Memory usage</strong> изменения в выделении памяти. Если выделение памяти изменяется в большую сторону, то соответствующая строка выделяется красным цветом, в меньшую &#8211; зеленым. Самый простой тест &#8211; это последовательная перезагрузка страницы с контролем за выделением памяти. Чтобы начать тест, нужно нажать кнопку <strong>Auto-refresh</strong> &#8211; автообновление. sIEve начнет автоматически перезагружать страницу через короткие промежутки времени, при этом в панели <strong>Memory usage</strong> будет отображаться выделенная процессу память. Если выделение памяти постоянно расти, значит мы имеем дело с утечкой памяти. При нормальной же работе скрипта будет наблюдаться только небольшие флуктуации вокруг определенного уровня.</p>
<p><span id="more-32"></span></p>
<p>Обнаруженные утилитой утечки памяти можно просмотреть, нажав на кнопку <strong>Show Leaks</strong>. Кнопка <strong>Show in use</strong> в свою очередь служит для просмотра элементов, которые используются в данный момент.</p>
<p>Для демонстрации работы sIEve, рассмотрим небольшой пример:</p>
<pre class="prettyprint">
&lt;html>
&lt;head>
&lt;script type="text/javascript">

function foo(){}

function createNodes(){
	for (var i=0; i<100; i++){
		var elem = document.createElement("span");
		elem.onclick = function(){ foo(); }
	}
}

window.onload = createNodes;
&lt;/script>
&lt;/head>
&lt;body>
	&lt;div id="container">
		&lt;h2>Sample page&lt;/h2>
		&lt;form>
			&lt;input type="text" name="" value="" />
			&lt;input type="submit" name="" value="Submit" />
		&lt;/form>
	&lt;/div>
&lt;/body>
&lt;/html></pre>
<p>В этом примере функция <strong>createNodes</strong> создаёт 100 элементов &#8220;span&#8221;, которые не подключаются к DOM. Все эти созданные элементы не удаляются из памяти из-за наличия в анонимной функции, назначенной событию onclick, вызова функции <strong>foo()</strong>. Эта ссылка будет препятствовать удалению созданных элементов &#8220;span&#8221; из памяти, что ведет к её утечке.</p>
<p>
<div class="thumbnail"><a href='http://www.jstoolbox.com/wp-content/uploads/2008/02/auto_refresh.jpg' title='Увеличение памяти при запуске auto-refresh'><img src='http://www.jstoolbox.com/wp-content/uploads/2008/02/auto_refresh.thumbnail.jpg' alt='Увеличение памяти при запуске auto-refresh' /></a><br/><span class="desc">Увеличение памяти при<br/>запуске auto-refresh</span></div>
<p>Загрузив эту страницу в sIEve, нажмем на кнопку <strong>Auto-refresh</strong>. В результате мы увидим, что выделение памяти при каждом обновлении страницы увеличивается, что свидетельствует об утечке.</p>
<p>
<div class="thumbnail"><a href='http://www.jstoolbox.com/wp-content/uploads/2008/02/detected_leaks.jpg' title='Обнаруженные утечки памяти'><img src='http://www.jstoolbox.com/wp-content/uploads/2008/02/detected_leaks.thumbnail.jpg' alt='Обнаруженные утечки памяти' /></a><br/><span class="desc">Обнаруженные утечки памяти</span></div>
<p>Теперь нажмем на кнопку <strong>Show Leaks</strong>, и в появившемся окне увидим все созданные объекты span, которые не были удалены из памяти. В этом же диалоге можно просмотреть свойства обнаруженных элементов, выделив их, и нажав на кнопку <strong>Properties</strong>.</p>
<p>Скачать sIEve и просмотреть документацию к нему можно <a href="http://home.wanadoo.nl/jsrosman/">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2008/02/12/obnaruzhenie-utechek-pamyati-v-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
