<?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>Codigo Manso &#187; benchmark</title>
	<atom:link href="http://www.codigomanso.com/es/tag/benchmark/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codigomanso.com</link>
	<description>Programación, informática y tecnología</description>
	<lastBuildDate>Sun, 21 Aug 2011 10:54:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP: switch vs array asociativo</title>
		<link>http://www.codigomanso.com/es/2008/11/php-switch-vs-array-asociativo/</link>
		<comments>http://www.codigomanso.com/es/2008/11/php-switch-vs-array-asociativo/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 09:57:46 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array asociativo]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/?p=30</guid>
		<description><![CDATA[Aunque la lógica me dice que un array asociativo funcionará mucho más rápido que un switch, dado que PHP es interpretado y no se a nivel interno como está implementado, pues qué mejor que un par de tests para probar.
Así que he creado un script que genera un numero de palabras aleatorias, y luego hace [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignnone size-full wp-image-37" style="float:left; margin: 0 8px 4px 0;" title="piechart" src="http://www.codigomanso.com/wp-content/uploads/2008/11/piechart.png" alt="" width="156" height="156" />Aunque la lógica me dice que un array asociativo funcionará mucho más rápido que un switch, dado que PHP es interpretado y no se a nivel interno como está implementado, pues qué mejor que un par de tests para probar.</p>
<p style="text-align: justify;">Así que he creado un script que genera un numero de palabras aleatorias, y luego hace 100000 búsquedas. En un caso se mide cuanto tiempo tarda la parte del switch, y en el otro caso se mide cuanto tiempo tarda la parte del array asociativo.</p>
<p style="text-align: justify;">Para los que no querais ejecutar el script, los resultados son los siguientes:</p>
<ul style="text-align: justify;">
<li>Para 10 palabras dentro del switch/array asociativo y 100 mil iteraciones:<br />
<strong>Ambos tardan lo mismo (el array un poco menos, pero casi casi ni se nota)</strong></li>
<li>Para 100 palabras dentro del switch/array asociativo y 100 mil iteraciones:<br />
<strong>El array asociativo tarda del orden de la mitad que el switch</strong></li>
<li>Para 1000 palabras dentro del switch/array asociativo y 100 mil iteraciones:<br />
<strong>El array asociativo es 10 veces más rápido que el switch</strong></li>
</ul>
<p style="text-align: justify;">La conclusión es clara, si dentro de un switch hay un número considerable de entradas, y es un path crítico dentro de la aplicación, siempre será mejor adaptar el script para usar arrays asociativos.</p>
<p style="text-align: justify;"><a title="Script que genera otro script para medir tiempos entre switch y array asociativos" href="http://www.codigomanso.com/archives/phpscripts/make_switch_vs_arrays.php.txt" target="_blank">Este script</a> genera otro que es el que se utiliza para medir los tiempos.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ php make_switch_vs_arrays.php <span style="color: #000000; font-weight: bold;">&gt;</span> benchmark.php
$ php benchmark.php</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2008/11/php-switch-vs-array-asociativo/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

