<?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>Kodono &#187; Performance</title>
	<atom:link href="http://blog.kodono.info/wordpress/tag/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kodono.info/wordpress</link>
	<description>Pour tous les technophiles</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:15:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tester les performances d&#8217;un code Javascript via un benchmark [performance]</title>
		<link>http://blog.kodono.info/wordpress/2011/08/19/tester-les-performances-dun-code-javascript-via-un-benchmark-performance/</link>
		<comments>http://blog.kodono.info/wordpress/2011/08/19/tester-les-performances-dun-code-javascript-via-un-benchmark-performance/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 13:50:10 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=709</guid>
		<description><![CDATA[Je vous conseille de tester régulièrement votre code Javascript pour voir les performances par rapport à d&#8217;autres commandes. Il arrive qu&#8217;on hésite entre deux (ou plus!) façons de faire. Il existe le populaire http://jsperf.com/ qui offre la possibilité de tester autant de bouts de code que l&#8217;on souhaite, en appelant même quelques framework bien connus [...]]]></description>
			<content:encoded><![CDATA[<p>Je vous conseille de tester régulièrement votre code Javascript pour voir les performances par rapport à d&#8217;autres commandes. Il arrive qu&#8217;on hésite entre deux (ou plus!) façons de faire.</p>
<p>Il existe le populaire <a href="http://jsperf.com/">http://jsperf.com/</a> qui offre la possibilité de tester autant de bouts de code que l&#8217;on souhaite, en appelant même quelques framework bien connus (comme jQuery).</p>
<p>Mais si vous avez des besoins un peu plus particulier, ou vous devez travailler sur un environnement restreint, alors il est possible d&#8217;utiliser <a href="http://www.broofa.com/Tools/JSLitmus/">JSLitmus</a>. La façon de l&#8217;utiliser est <strong>incroyablement simple</strong> :</p>
<pre class="brush:javascript">&lt;script src="JSLitmus.js">&lt;/script>
&lt;script>
JSLitmus.test('Mon premier test', function() { /* do something */ });
JSLitmus.test('Mon second test', function() { /* do something else */ });
&lt;/script></pre>
<p>Cela fait apparaître un bouton &laquo;&nbsp;Run tests&nbsp;&raquo; avec un petit tableau. Une fois le test fini le tableau et un graphique vous donnent les informations nécessaires, et en l&#8217;occurrence plus le chiffre (nombre d&#8217;opérations/sec) est grand et mieux c&#8217;est.</p>
<p>Voici un exemple qui montre que l&#8217;utilisation de <code>search</code> est bien plus rapide que de déclarer une <code>RegExp</code> puis appeler <code>match</code> :</p>
<pre class="brush:javascript">&lt;html>
&lt;head>
&lt;script src="http://www.broofa.com/Tools/JSLitmus/JSLitmus.js">&lt;/script>
&lt;/head>
&lt;body>
&lt;script>
JSLitmus.test('Mon premier test', function() { var regExp = new RegExp("pouet$"); var ok = ("pouet".match(regExp) != null); });
JSLitmus.test('Mon deuxième test', function() { var ok = ("pouet".search("pouet") != -1); });
&lt;/script>
&lt;/body>&lt;/html></pre>
<p>Résultat :<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2011/08/JSLitmus-238x300.png" alt="" title="JSLitmus" width="238" height="300" class="aligncenter size-medium wp-image-710" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/08/19/tester-les-performances-dun-code-javascript-via-un-benchmark-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;opérateur typeof en Javascript [programmation]</title>
		<link>http://blog.kodono.info/wordpress/2011/08/14/loperateur-typeof-en-javascript-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2011/08/14/loperateur-typeof-en-javascript-programmation/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 18:49:56 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau débutant]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=687</guid>
		<description><![CDATA[Si vous avez déjà essayé d&#8217;utiliser typeof en Javascript pour trouver le type d&#8217;un objet, vous avez dû vous rendre compte que cet opérateur n&#8217;aide pas beaucoup&#8230;. Le typeof par défaut de Javascript Déjà, comme typeof est un opérateur, vous n&#8217;avez pas besoin d&#8217;utiliser des parenthèses ou une quelconque autre décoration. Ainsi on aura : [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez déjà essayé d&#8217;utiliser <code>typeof</code> en Javascript pour trouver le type d&#8217;un objet, vous avez dû vous rendre compte que cet opérateur n&#8217;aide pas beaucoup&#8230;.</p>
<h1>Le typeof par défaut de Javascript</h1>
<p>Déjà, comme <code>typeof</code> est un opérateur, vous n&#8217;avez pas besoin d&#8217;utiliser des parenthèses ou une quelconque autre décoration.<br />
Ainsi on aura :</p>
<pre class="brush:javascript">typeof 2; // -> "number"
typeof "Kodono"; // -> "string"</pre>
<p>On peut remarquer qu&#8217;ici <code>typeof</code> nous a bien donné ce qu&#8217;on attendait&#8230; mais voilà ce qu&#8217;il se passe avec d&#8217;autres exemples :</p>
<pre class="brush:javascript">typeof []; // -> "object"
typeof new Boolean(true); // -> "object"
typeof /a/; // -> "object"
typeof new Date(); // -> "object"
typeof null; // -> "object"</pre>
<p>Comme on peut le voir, l&#8217;opérateur va fournir un &laquo;&nbsp;object&nbsp;&raquo; dans de nombreuses situations, ce qui n&#8217;aide pas du tout.</p>
<h1>Créer un meilleur typeof</h1>
<p>Pour faire court, on peut appliquer <code>Object.prototype.toString.call</code> à un objet qui va retourner une chaine au format &laquo;&nbsp;[object <i>Class</i>]&laquo;&nbsp;. Quelques exemples :</p>
<pre class="brush:javascript">Object.prototype.toString.call(new Number(2)); // -> [object Number]
Object.prototype.toString.call(new Date()); // -> [object Date]
Object.prototype.toString.call(/a/); // -> [object RegExp]</pre>
<p>Maintenant que l&#8217;on sait ça on peut créer notre propose fonction <code>typeOf</code> (en sachant que <code>Object.prototype</code> peut se raccourcir par <code>({})/</code>).<br />
On trouve sur Internet différentes façons de faire que je vais vous proposer.</p>
<h2 style="float:none; padding-top:10px">La plus lente</h2>
<p>Elle n&#8217;est pas très rapide (dûe à l&#8217;utilisation des expressions régulières), mais elle est très courte :</p>
<pre class="brush:javascript">function typeOf(obj){return({}).toString.call(obj).match(/\s(\w+)/)[1]}

console.log(typeOf(new Number(2))); // -> Number
console.log(typeOf(new Date())); // -> Date
console.log(typeOf("test")); // -> String
console.log(typeOf(null)); // -> Null
console.log(typeOf(/a/)); // -> RegExp
console.log(typeOf([])); // -> Array
console.log(typeOf(function(){})); // -> Function</pre>
<h2 style="float:none; padding-top:10px">jQuery.type</h2>
<p>Si vous utilisez déjà <em>jQuery</em>, vous pouvez utiliser la fonction <a href="http://api.jquery.com/jQuery.type/">jQuery.type</a> qui propose une fonction assez rapide et efficace.<br />
Ils utilisent la méthode suivante :</p>
<pre class="brush:javascript">
function typeOf(obj){
  var c2t={"[object Boolean]":"Boolean","[object Number]":"Number","[object String]":"String","[object Function]":"Function","[object Array]":"Array","[object Date]":"Date","[object RegExp]":"RegExp","[object Object]":"Object"};
  return obj==null?String(obj):c2t[({}).toString.call(obj)]||"object";
}

console.log(typeOf(new Number(2))); // -> Number
console.log(typeOf(new Date())); // -> Date
console.log(typeOf("test")); // -> String
console.log(typeOf(null)); // -> Null
console.log(typeOf(/a/)); // -> RegExp
console.log(typeOf([])); // -> Array
console.log(typeOf(function(){})); // -> Function</pre>
<h2 style="float:none; padding-top:10px">La plus courte et rapide</h2>
<p>Celle-ci ne prend que quelques caractères, et se veut <a href="http://jsperf.com/typeof-test-case">rapide en plus</a> !</p>
<pre class="brush:javascript">function typeOf(obj) {return({}).toString.call(obj).slice(8,-1)}

console.log(typeOf(new Number(2))); // -> Number
console.log(typeOf(new Date())); // -> Date
console.log(typeOf("test")); // -> String
console.log(typeOf(null)); // -> Null
console.log(typeOf(/a/)); // -> RegExp
console.log(typeOf([])); // -> Array
console.log(typeOf(function(){})); // -> Function</pre>
<h1>Conclusion</h2>
<p>Si vous utilisez déjà jQuery dans votre code, alors vous pouvez faire confiance à <code>jQuery.type</code>, sinon je vous conseille la dernière fonction proposée :</p>
<pre class="brush:javascript">function typeOf(obj) {return({}).toString.call(obj).slice(8,-1)}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/08/14/loperateur-typeof-en-javascript-programmation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Activer la compression GZip sur WordPress [Performance]</title>
		<link>http://blog.kodono.info/wordpress/2010/02/01/activer-la-compression-gzip-sur-wordpress-performance/</link>
		<comments>http://blog.kodono.info/wordpress/2010/02/01/activer-la-compression-gzip-sur-wordpress-performance/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 05:22:52 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Niveau débutant]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=413</guid>
		<description><![CDATA[[niveau débutant] Si vous souhaitez que WordPress serve les pages de votre blog plus rapidement (et surtout en prenant moins de bande passante, c&#8217;est-à-dire en pesant moins lourd), vous pouvez utiliser l&#8217;option de compression au format GZip. Pour cela il faut simplement ajouter la ligne suivante au début de votre fichier header.php (accessible depuis la [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau débutant]</p>
<p>Si vous souhaitez que WordPress serve les pages de votre blog plus rapidement (et surtout en prenant moins de bande passante, c&#8217;est-à-dire en pesant moins lourd), vous pouvez utiliser l&#8217;option de compression au format GZip. Pour cela il faut simplement ajouter la ligne suivante au début de votre fichier <em>header.php</em> (accessible depuis la partie &laquo;&nbsp;Apparence &gt; Editeur&nbsp;&raquo; de l&#8217;admin de votre blog) :</p>
<div class="code">&lt;?php ob_start(“ob_gzhandler”); ?&gt;</div>
<p>Vous pouvez ensuite vérifier que votre blog utilise bien la compression grâce au site <a href="http://www.gidnetwork.com/tools/gzip-test.php">http://www.gidnetwork.com/tools/gzip-test.php</a>, ou en regardant les en-têtes de la page grâce à un plugin Firefox (comme <a href="http://getfirebug.com/">Firebug</a>).</p>
<p>Attention cependant de vérifier que votre hébergeur supporte cette fonctionnalité (ce qui est le cas la plupart du temps).</p>
<p>Source: <a href="http://rosedesrochers.todays-woman.net/2010/01/31/how-to-enable-gzip-compression-in-wordpress/">http://rosedesrochers.todays-woman.net/2010/01/31/how-to-enable-gzip-compression-in-wordpress/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2010/02/01/activer-la-compression-gzip-sur-wordpress-performance/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

