<?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>В лабиринте извилин &#187; тесты</title>
	<atom:link href="http://www.charnad.com/blog/tag/testy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.charnad.com</link>
	<description>Блог-центр им. CharnaD</description>
	<lastBuildDate>Wed, 18 Jan 2012 14:52:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Чтение мануалов не проходит бесследно</title>
		<link>http://www.charnad.com/blog/chtenie-manualov-ne-proxodit-bessledno/</link>
		<comments>http://www.charnad.com/blog/chtenie-manualov-ne-proxodit-bessledno/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 14:24:20 +0000</pubDate>
		<dc:creator>CharnaD</dc:creator>
				<category><![CDATA[Обо мне]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[тесты]]></category>
		<category><![CDATA[я]]></category>

		<guid isPermaLink="false">http://www.charnad.com/?p=140</guid>
		<description><![CDATA[Результаты все лучше и лучше. Сравните с первым результатом там было 205 всего. Дальнейшие результаты: Дальше я опять 2 раза по 260 ответил, видимо где-то упорно ошибаюсь. Провел несколько экспериментов, и правда, путаю технологии создания классов в пхп4 и пхп5. А так же узнал про веб-сервер resin. Потом ответил правильно 275, потом 290. Каждый раз [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 270px"><br />
<a href="http://www.corp.mamba.ru/test/promo.phtml"><img border="0" src="http://www.corp.mamba.ru/test/widget.phtml?id=33121" /></a><br />
<p class="wp-caption-text">Результаты все лучше и лучше</p></div>
<p>Результаты все лучше и лучше. Сравните с <a href="http://www.charnad.com/blog/ja-horoshii-php-programmist/">первым результатом</a> там было 205 всего.</p>
<p><span id="more-140"></span></p>
<p>Дальнейшие результаты:</p>
<p>Дальше я опять 2 раза по 260 ответил, видимо где-то упорно ошибаюсь. Провел несколько экспериментов, и правда, путаю технологии создания классов в пхп4 и пхп5. А так же узнал про веб-сервер resin. Потом ответил правильно 275, потом 290. Каждый раз когда проходил тест думал, где же я ошибаюсь. Узнал для себя много нового. Оказывается include возвращает 1 в случае удачи. Не true, а 1. Да уж, видимо в этом и состоит мастерство быть php программистом - помнить все эти мелкие детали, которые не придут в голову здравому человеку.</p>
<p><a href="http://www.corp.mamba.ru/test/promo.phtml"><img border="0" src="http://www.corp.mamba.ru/test/widget.phtml?id=33116" /></a></p>
<p><a href="http://www.corp.mamba.ru/test/promo.phtml"><img border="0" src="http://www.corp.mamba.ru/test/widget.phtml?id=33099" /></a></p>
<p><a href="http://www.corp.mamba.ru/test/promo.phtml"><img src="http://www.charnad.com/stuff/images/widget.gif" alt="Результаты все лучше и лучше" width="260" height="120" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.charnad.com/blog/chtenie-manualov-ne-proxodit-bessledno/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Как проверить существует ли сайт</title>
		<link>http://www.charnad.com/blog/kak-proverit-sushhestvuet-li-sajt/</link>
		<comments>http://www.charnad.com/blog/kak-proverit-sushhestvuet-li-sajt/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 11:03:34 +0000</pubDate>
		<dc:creator>CharnaD</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[тесты]]></category>

		<guid isPermaLink="false">http://www.charnad.com/?p=143</guid>
		<description><![CDATA[Мне потребовалось узнать, существуют ли сайты, которые есть в списке. Список большой (достали список всех доменов *.com на осень 2007, там около 55 миллионов доменов). Все конечно проверять нет смысла, но вот первые тысяч 10-100 нужно. Объемы понятное дело огромные, поэтому алгоритм тут будет играть большую роль. Мне на ум пришли три метода: curl, fopen [...]]]></description>
			<content:encoded><![CDATA[<p>Мне потребовалось узнать, существуют ли сайты, которые есть в списке. Список большой (достали список всех доменов *.com на осень 2007, там около 55 миллионов доменов). Все конечно проверять нет смысла, но вот первые тысяч 10-100 нужно. Объемы понятное дело огромные, поэтому алгоритм тут будет играть большую роль. Мне на ум пришли три метода: curl, fopen и get_headers. Поэтому я и решил проверить кто из них справится с задачей быстрее.</p>
<p><span id="more-143"></span></p>
<p>Далее написал код, который собственно и производит вычисления.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">ob_implicit_flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//Выводить по мере поступления данных</span>
<span style="color: #990000;">error_reporting</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">//Буду варнинги, но нам их не надо</span>
<span style="color: #990000;">set_time_limit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//Исполнять до победного конца</span>
&nbsp;
<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'dotcom_list'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'r'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//исходный файл</span>
&nbsp;
<span style="color: #000088;">$time_start</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">feof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span> and <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">fgets</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$site</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.'</span><span style="color: #339933;">.</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.com'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Checking:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$site</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'... '</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$curl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$site</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_FOLLOWLOCATION<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sites/'</span><span style="color: #339933;">.</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.txt'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'a+'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">' Done!'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$time_end</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$time</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$time_end</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$time_start</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Обработано: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$i</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' за '</span><span style="color: #339933;">.</span><span style="color: #000088;">$time</span><span style="color: #339933;">.</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$time_start</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">feof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span> and <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">fgets</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$site</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.'</span><span style="color: #339933;">.</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.com'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Checking:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$site</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'... '</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$site_handler</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$site</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'r'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$site_handler</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$site_handler</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$site_handler</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sites/'</span><span style="color: #339933;">.</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.txt'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'a+'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">' Done!'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$time_end</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$time</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$time_end</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$time_start</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Обработано: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$i</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' за '</span><span style="color: #339933;">.</span><span style="color: #000088;">$time</span><span style="color: #339933;">.</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$time_start</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">feof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span> and <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">fgets</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$site</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.'</span><span style="color: #339933;">.</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.com'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Checking:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$site</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'... '</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$headers</span> <span style="color: #339933;">=</span> <span style="color: #990000;">get_headers</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$site</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$headers</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sites/'</span><span style="color: #339933;">.</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.txt'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'a+'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">' Done!'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$time_end</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$time</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$time_end</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$time_start</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Обработано: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$i</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' за '</span><span style="color: #339933;">.</span><span style="color: #000088;">$time</span><span style="color: #339933;">.</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>И вот собственно результаты:<br />
10 сайтов:<br />
curl: Обработано: 10 за 15.06<br />
fopen: Обработано: 10 за 70.10<br />
get_headers: Обработано: 10 за 69.23</p>
<p>50 сайтов:<br />
curl: Обработано: 50 за 123.23<br />
fopen: Обработано: 50 за 288.16<br />
get_headers: Обработано: 50 за 249.84</p>
<p>100 сайтов:<br />
curl: Обработано: 100 за 195.53<br />
fopen: Обработано: 100 за 480.05<br />
get_headers: Обработано: 100 за 527.04</p>
<p>Вывод: curl! curl! curl!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charnad.com/blog/kak-proverit-sushhestvuet-li-sajt/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Тормозной SQLite? Совсем нет!</title>
		<link>http://www.charnad.com/blog/tormoznoi-sqlite-sovsem-net/</link>
		<comments>http://www.charnad.com/blog/tormoznoi-sqlite-sovsem-net/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 14:36:16 +0000</pubDate>
		<dc:creator>CharnaD</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[тесты]]></category>

		<guid isPermaLink="false">http://www.charnad.com/blog/?p=64</guid>
		<description><![CDATA[Эта статья была запощена на хабрахабр до появления этого блога. А теперь она обрела свой дом. Как-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости. Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений. Поэтому провел тесты [...]]]></description>
			<content:encoded><![CDATA[<p>Эта статья была запощена на хабрахабр до появления этого блога. А теперь она обрела свой дом.</p>
<p>Как-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости.<span id="more-64"></span></p>
<p>Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.<br />
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.</p>
<p>Код <a href="http://www.charnad.com/stuff/test.txt">тут</a>.</p>
<p>Итак, в <a href="http://phpclub.ru/detail/article/sqlight_intro">статье</a> убеждали: "В последнее время, вы, возможно, слышали о новом расширении для PHP: SQLite. Есть много причин, по которым SQLite может показаться лучшим достижением с тех пор, как научились резать хлеб. SQLite предлагает добротный SQL интерфейс к нерелятивистской базе данных и создаёт элегантную альтернативу громоздким интерфейсам других баз данных без потери функциональности или скорости, как можно было бы ожидать.".</p>
<p>Смотрим что же получилось по тестам…<br />
SQLite                    MySQL<br />
Запись<br />
0.45911908149719	0.031841039657593<br />
0.46412396430969	0.031555891036987<br />
0.49027895927429	0.029323101043701<br />
0.46884489059448	0.029382944107056<br />
0.50253915786743	0.028644800186157<br />
Среднее<br />
0.47698121070862	0.030149555206299</p>
<p>Чтение<br />
0.026177883148193	0.060520172119141<br />
0.026360988616943	0.059216022491455<br />
0.026273012161255	0.062637090682983<br />
0.026113986968994	0.062775135040283<br />
0.026944160461426	0.062674045562744<br />
Среднее<br />
0.026374006271362	0.061564493179321</p>
<p>Удивительный провал на запись и преимущество в чтении. Однако спасибо <a href="http://ptalus.habrahabr.ru/">ptalus</a> , который пролил свет на это дело. В <a href="http://www.sqlite.org/speed.html">мануале</a> написано, что для каждой записи файл открывается-закрывается, что и влечет за собой такую тормознутость, однако стоит добавить</p>
<p>sqlite_query($dbhandle, 'BEGIN;');<br />
sqlite_query($dbhandle, 'COMMIT;');</p>
<p>вокруг запроса и время записи просто магически меняется.</p>
<p>Запись:<br />
0.014724016189575<br />
0.014418125152588<br />
0.015676975250244<br />
0.014610052108765<br />
0.014219999313354<br />
Среднее:<br />
0.014729833602905</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charnad.com/blog/tormoznoi-sqlite-sovsem-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

