<?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>Aen Sidhe&#039;s Weblog &#187; рецензии</title>
	<atom:link href="http://www.aensidhe.ru/category/reviews/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aensidhe.ru</link>
	<description>Просто блог.</description>
	<lastBuildDate>Sat, 24 Jul 2010 09:20:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Watchmen Director&#8217;s Cut</title>
		<link>http://www.aensidhe.ru/2009/07/18/watchmen-directors-cut/</link>
		<comments>http://www.aensidhe.ru/2009/07/18/watchmen-directors-cut/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 20:48:10 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[дневник]]></category>
		<category><![CDATA[рецензии]]></category>
		<category><![CDATA[видео]]></category>
		<category><![CDATA[кино]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=477</guid>
		<description><![CDATA[Да, оно круто. Это цензурно. Нецензурно &#8211; это ахуенно. Всем смотреть. Метки:видео, дневник, кино, рецензии]]></description>
			<content:encoded><![CDATA[<p>Да, оно круто. Это цензурно. Нецензурно &#8211; это ахуенно. Всем смотреть.</p>

	Метки:<a href="http://www.aensidhe.ru/tag/%d0%b2%d0%b8%d0%b4%d0%b5%d0%be/" title="видео" rel="tag nofollow">видео</a>, <a href="http://www.aensidhe.ru/category/blog/" title="дневник" rel="tag nofollow">дневник</a>, <a href="http://www.aensidhe.ru/tag/%d0%ba%d0%b8%d0%bd%d0%be/" title="кино" rel="tag nofollow">кино</a>, <a href="http://www.aensidhe.ru/category/reviews/" title="рецензии" rel="tag nofollow">рецензии</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2009/07/18/watchmen-directors-cut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>profilers-part-2</title>
		<link>http://www.aensidhe.ru/2009/07/08/profilers-part-2/</link>
		<comments>http://www.aensidhe.ru/2009/07/08/profilers-part-2/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 17:46:55 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[дневник]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[рецензии]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=428</guid>
		<description><![CDATA[Обещанное продолжение про профайлеры. Начало тут В предыдущей статье мы сделали дамп с помощью WinDbg. Далее, что с ним можно сделать? Наверно много, но меня интересовало только одно, а именно &#8211; память. Поэтому, я загнал дамп в .Net Memory Profiler. Данный профайлер сказал мне, что из 7 гигов рама, у меня управляемой памяти всего 1.5 [...]]]></description>
			<content:encoded><![CDATA[<p>Обещанное продолжение про профайлеры. Начало <a href="http://www.aensidhe.ru/2009/07/01/profilers/">тут</a></p>
<p>В предыдущей статье мы сделали дамп с помощью WinDbg. Далее, что с ним можно сделать? Наверно много, но меня интересовало только одно, а именно &#8211; память. Поэтому, я загнал дамп в .Net Memory Profiler.</p>
<p>Данный профайлер сказал мне, что из 7 гигов рама, у меня управляемой памяти всего 1.5 гига. Так как я был тупо уверен (без всяких на то указаний &#8211; это ошибка), что утечка именно в управляемой дотнетом памяти, то эту информацию я сразу отбросил и выкинул профайлер.</p>
<p>Пришлось гуглить и пытать по аське знакомых. Результаты:</p>
<p>“!eeheap -stat” &#8211; выдаст статистику по управляемым кучам. Предварительно надо загрузить расширение sos.dll. Посмотрев результаты, я понял, что управляемой памяти на самом деле всего полтора гига.</p>
<p>Дальнейшее было делом техники &#8211; зацепился из кода к GC Lua, стал выводить статистику по памяти в лог и убедился, что жрёт наш замечательный интерпретатор.</p>
<p>А вот <a href="http://www.codeproject.com/KB/cpp/MemoryLeak.aspx">пособие</a> для нубов, как юзать WinDbg для отсечки утечек памяти.</p>

	Метки:<a href="http://www.aensidhe.ru/tag/net/" title=".net" rel="tag nofollow">.net</a>, <a href="http://www.aensidhe.ru/category/blog/" title="дневник" rel="tag nofollow">дневник</a>, <a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag nofollow">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag nofollow">рабочее</a>, <a href="http://www.aensidhe.ru/category/reviews/" title="рецензии" rel="tag nofollow">рецензии</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2009/07/08/profilers-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profilers</title>
		<link>http://www.aensidhe.ru/2009/07/01/profilers/</link>
		<comments>http://www.aensidhe.ru/2009/07/01/profilers/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 07:12:06 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рецензии]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=411</guid>
		<description><![CDATA[Расскажу я вам сказочку о профайлерах. Их есть много, за каждый хотят обычно денег. Да, чуть не забыл &#8211; профилировать мы будем память. Итак, условия задачи: есть 64битный (это важно) .NET процесс, штатный режим которого &#8211; 1-2 Gb Ram, иногда оно съедает 7-8 (больше на сервере нет просто). Задача: выяснить что же там такое, что [...]]]></description>
			<content:encoded><![CDATA[<p>Расскажу я вам сказочку о профайлерах. Их есть много, за каждый хотят обычно денег. Да, чуть не забыл &#8211; профилировать мы будем память.</p>
<p>Итак, условия задачи: есть 64битный (это важно) .NET процесс, штатный режим которого &#8211; 1-2 Gb Ram, иногда оно съедает 7-8 (больше на сервере нет просто). Задача: выяснить что же там такое, что сжирает эти лишние 6 гиг рама, найти и уничтожить, как обычно всё в общем.</p>
<p>На испытания поступили:</p>
<ol>
<li><a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx">WinDbg</a> + SOS (брать в составе нужного фреймворка) &#8211; брутальнейший отладчик от майкрософт с интерфейсом в духе &laquo;назад в 90е&raquo; и &laquo;я-vi&raquo;, ибо практически всё управление через командную строку.</li>
<li><a href="http://www.jetbrains.com/profiler/">JetBrains dotTrace</a> &#8211; новенький гламурный профайлер, писанный на шарпе, с блекджеком и шлюхами.</li>
<li><a href="http://memprofiler.com/">.Net Memory Profiler</a> &#8211; понтов поменьше, чем у JetBrains, но интерфейс вполне приятный.</li>
</ol>
<p>Я не буду рассказывать про все их фичи &#8211; желающие сами прочтут по ссылкам. Я лишь расскажу, как я ими пользовался.</p>
<p>Запустил я WinDbg, увидел аццкое окошко, кучу непонятных букв и мегамануал и понял, что этот звездолёт я освою только в крайнем случае. Ну уж если совсем жопа будет. И отложил его подальше, благо он бесплатный, лежит &#8211; жрать не просит. Далее шёл фаворит &#8211; dotTrace.</p>
<p>Фаворит заупрямился сразу &#8211; к работающим процессам он не аттачится, видите ли там API херовое, поэтому у них API своё и надо запускать процесс из-под него. Ну раз так &#8211; значит так, нам то, что. Запускаем, эмулируем ситуацию, делаем дамп. Доттрейс думал долго. Минут 15, но дамп сделал (честь ему и хвала). Но дальше &#8211; финиш. Открывать его он отказался, сославшись на &laquo;Not enough memory&raquo;. Я тупо посмотрел на свободных 6 гиг рама и ещё 20 гиг свопа, почесал в затылке и написал в саппорт.</p>
<blockquote><p>добрый день.<br />
у меня есть пара вопросов по dottrace<br />
есть дампы по 900 метров файлы, снятые с процесса, который жрал примерно 2 гига рама. записывались только сами объекты, без колстеков, гарбадж коллектора и финалайзер инфы.<br />
пытаемся открыть версией 3.1 этот дамп на сервере (16 гб рама, вин 2003 р2 сп2 х64, 2 xeon каких-то). доттрейс падает с not enough memory.<br />
что у нас не так?</p></blockquote>
<p>Ответ меня сразил наповал:</p>
<blockquote><p>слишком большой снепшот. dT 3.1 &#8211; 32-битное приложение, ей 16 физических гигов не сильно помогут</p></blockquote>
<p>Как замечательно. Скромно умолчим, что качал я конечно версию, которая помечена на сайте как 64битное приложение. Для софта по 500 баксов за одно место, это несколько непонятно.</p>
<p>Ну, да ладно. Выкинув поделку от Jetbrains, я взялся за .Net Memory Profiler. Создателям возможная кривость Debugging API не помешала и профайлер умеет как цепляться к существующим процессам, так и запускать из под себя их. Поигравшись по мелочи с настройками, пытаемся сделать дамп процесса. Профайлер думал 2 часа, меня проклинали тестеры, но дамп сделать не смог. Стоит, правда, в два раза дешевле &#8211; 250 баксов.</p>
<p>Добрый коллега посоветовал для снятия дампа <a href="http://www.debuginfo.com/tools/clrdump.html">ClrDump</a>, бесплатную тулзу от спецов по отладке. Тулза порадовала быстрой работой, произведя дамп в 0 (ноль) байт с процесса в 7 гигов. Немедленно была составлена жалоба в суппорт:</p>
<blockquote><p>Hello.</p>
<p>I wonder why ClrDump produces dump of zero size? My process have 7 Gb of ram and I want to look why.</p>
<p>Command string: ClrDump 3684 sil.dmp Max.</p>
<p>What am I doing wrong?</p>
<p>There is enough space on HDD (about 100 Gb of free space)</p>
<p>Regards, Anatoly Popov.</p></blockquote>
<p>Автор сначала вежливо ответил, что он в отпуске, но на следующей неделе рассмотрит проблему внимательно. Не обманул, но ответ уже не удивлял:</p>
<blockquote><p>Hello Anatoly,</p>
<p>Is your process 64-bit? If so, ClrDump cannot create a dump for it (limitations of 32-bit DbgHelp.dll). Unfortunately, there is no 64-bit version of ClrDump (it was created when 64-bit systems were not widespread, and now I don&#8217;t have time to upgrade it).</p>
<p>As a workaround, it should be possible to write your own tool that would be built as 64-bit executable, load 64-bit DbgHelp.dll and create the dump. Three function calls are needed: OpenProcess (open the target process), CreateFile(create the dump file), MiniDumpWriteDump with the proper parameters to create the dump. I can send you a sample code if you want.</p>
<p>Regards,</p>
<p>Oleg</p></blockquote>
<p>Но тут хоть претензий предъявить нельзя &#8211; тулза бесплатная, делалась для себя. Так что ладно.</p>
<p>А что же наш звездолёт, который WinDbg? Звездолёт отлично делает дампы со скоростью, примерно равной скорости записи на винт, работает как часы, даром, что бесплатный, древний, да от майкрософта.</p>
<p>Да, кстати, в Vista и 2008 сервере так трахаться не надо. Открываем Task Manager, тыркаем правой кнопкой в процесс, выбираем Create Dump, вуаля, всё готово.</p>
<p>Приятной вам работы.</p>

	Метки:<a href="http://www.aensidhe.ru/tag/net/" title=".net" rel="tag nofollow">.net</a>, <a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag nofollow">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag nofollow">рабочее</a>, <a href="http://www.aensidhe.ru/category/reviews/" title="рецензии" rel="tag nofollow">рецензии</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2009/07/01/profilers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Меньшее зло</title>
		<link>http://www.aensidhe.ru/2009/03/08/nececcary-evil/</link>
		<comments>http://www.aensidhe.ru/2009/03/08/nececcary-evil/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 10:20:50 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[рецензии]]></category>
		<category><![CDATA[кино]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=296</guid>
		<description><![CDATA[Или может ли утопия стоить нескольких сотен миллионов человеческих жизней? Под катом спойлеры про фильм Watchmen (Хранители). Ходил вчера (сегодня? ) на ночь кино, посвящённую Заку Снайдеру в кинотеатр &#171;Спутник&#187;. Обещали показать Watchmen, 300 и Dawn of the Dead (дубляжи естесственно). Почему обещали? Потому что в пять утра в кинотеатре ВНЕЗАПНО осознали, что Dawn of [...]]]></description>
			<content:encoded><![CDATA[<p>Или может ли утопия стоить нескольких сотен миллионов человеческих жизней? Под катом спойлеры про фильм Watchmen (Хранители).</p>
<p><span id="more-296"></span>Ходил вчера (сегодня? <img src='http://www.aensidhe.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) на ночь кино, посвящённую Заку Снайдеру в кинотеатр &laquo;Спутник&raquo;. Обещали показать Watchmen, 300 и Dawn of the Dead (дубляжи естесственно). Почему обещали? Потому что в пять утра в кинотеатре ВНЕЗАПНО осознали, что Dawn of the Dead шибко длинный и до утреннего сеанса не влезет, поэтому они будут показывать &laquo;Войну невест&raquo;. Ну, так как я шёл на первые два фильма, то я просто встал и ушёл.</p>
<p>Собственно, фильма Хранители сильно отличается от фильмы 300. Боёвок действительно мало, но, имхо, это скрашивается сюжетом, героями и диалогами (поэтому надо срочно найти в оригинале и пересмотреть). Собственно, &laquo;главный злодей&raquo; &#8211; невероятно умный человек, который замыслил всякое (уничтожить крупнейшие финансовые мировые центры), подставить под это дело одного из супергероев, тогда СССР и США объединят усилия против него, и с войной будет покончено. Собственно, так оно и произошло. Порадовала одна сцена, когда его пытаются остановить другие супергерои, он от них лениво отмахивается, объясняет свой план (классическая сцена, да):</p>
<blockquote><p>- Мы не позволим тебе этого сделать!</p>
<p>- Вы держите меня за идиота? Стал бы я вам объяснять свой план, если была бы хоть какая-то вероятность того, что вы мне сможете помешать. Я всё сделал 35 минут назад.</p></blockquote>
<p>Классическая сцена: супергероя/мента сажают в тюрьму к обычным уголовникам, почти сразу же следует наезд, наезжающий отлавливает ранений, не совместимых с жизнью:</p>
<blockquote><p>- Вы думаете, это меня с вами заперли? Нет! Это ВАС со мной заперли!</p></blockquote>
<p>В целом, фильма и главные герои (я за них считаю Роршаха и Эдриана-Азумандиуса) злы, а герои ещё и умны, беспощадны и жестоки. Что есть гут, таких фильмов мало.</p>
<p>Про 300 всё уже пережёвано сто раз, поэтому не буду ничего рассказывать.</p>
<p>В перерыве между фильмами доставило наше юношество, которое собиралось смотреть 300 не в первый раз.</p>
<blockquote><p>- Непонятно, причём тут СССР в фильме.</p>
<p>- Да и вообще, фильм какой-то мутный. Ничо, щас будут исторический показывать. 300 спартанцев.</p></blockquote>

	Метки:<a href="http://www.aensidhe.ru/tag/%d0%ba%d0%b8%d0%bd%d0%be/" title="кино" rel="tag nofollow">кино</a>, <a href="http://www.aensidhe.ru/category/reviews/" title="рецензии" rel="tag nofollow">рецензии</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2009/03/08/nececcary-evil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
