PHP
::Benchmark touch vs file_put_contents
[Trackback]
Date : 2008-05-28@14:54:59
Rang : 0
Dans la série question existentielle :
touch vs file_put_contents
le code de test :
<?php
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_put_contents('test.txt','www.deezer.com Tu peux te
créer ta propre
playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra
ve, tu peux quand meme écouter de la musique.
Simple dutilisation,
lit toutes les musiques de
la dernière recherche
les unes après les autres.');
}
var_dump(time() + microtime() - $time);
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
touch('test.txt');
}
var_dump(time() + microtime() - $time);
?>
Les résultats :
file_put_contents 0.41347002983093
touch 0.071331977844238
Soit 6 fois plus rapide, l'application directe de ce test est que l'on évite l'écriture en cache d'un objet si celui ci n'a pas changer et on le revalide par un touch.
Pour vérifier que le cache n'a pas changer il faut bien sur lire le cache même quand il n'est plus valide.
Ce qui donne le code de bench suivant :
<?php
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_put_contents('test.txt','www.deezer.com Tu peux te
créer ta propre
playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra
ve, tu peux quand meme écouter de la musique.
Simple dutilisation,
lit toutes les musiques de
la dernière recherche
les unes après les autres.');
}
var_dump(time() + microtime() - $time);
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_get_contents('test.txt');
touch('test.txt');
}
var_dump(time() + microtime() - $time);
?>
Les résultats :
file_put_contents 0.51197385787964
touch + file_get_contents 0.3950469493866
Le gain est minime cette fois mais c'est toujours ça de pris :D
PHP
::Benchmark require VS include
[Trackback]
Date : 2008-01-11@11:39:36
Rang : 0
Bon comme on est vendredi et que l'on m'a gentillement posé la question de savoir si le require était plus rapide que l'include je me suis fait un petit benchmark pour trouver la réponse.
Petit rappel : Les deux fonctions n'ont pas le même comportement require déclenche une erreur php qui stop donc l'exécution du code alors que include déclenche un warning et continu l'exécution.
le bench est fait sous php5
J'ai généré 2000 fichiers (1000 pour le require et 1000 pour include) avec le code suivant :
<?php
set_time_limit();
for($i = 0;$i<1000;$i++)
{
file_put_contents('/data/projects/test/include'.$i.'.php',"<?php\\necho 'coucou je suis content ".$i."';\\n?>");
file_put_contents('/data/projects/test/require'.$i.'.php',"<?php\\necho 'coucou je suis content ".$i."';\\n?>");
}
?>
Chaque fichier a un code différent je ne pense pas que cela joue mais bon comme on a apc sur les serveurs on sait jamais.
Maintenant que tout est prés on peur lancer le code de benchmark à proprement parler.
<?php
set_time_limit(0);
$start = time()+microtime();
for($i = 0;$i<1000;$i++)
{
include('/data/projects/test/include'.$i.'.php');
}
error_log('Benchmark include '.(time()+microtime()-$start),E_USER_WARNING);
$start = time()+microtime();
for($i = 0;$i<1000;$i++)
{
require('/data/projects/test/require'.$i.'.php');
}
error_log('Benchmark require '.(time()+microtime()-$start),E_USER_WARNING);
?>
Et voilà le résultat dans mon log
[11-Jan-2008 11:31:57] Benchmark include 0.039840936660767
[11-Jan-2008 11:31:57] Benchmark require 0.05462384223938
Donc include est 38% plus rapide que require.
Linux
::Bash choix aléatoire dans un tableau
[Trackback]
Date : 2008-01-08@15:01:03
Rang : 0
Voici un petit code qui permet de choisir de manière aléatoire un élément d'un tableau.
#!/bin/bash
choices=("un" "deux" "trois")
choice=${choices[$RANDOM%${#choices[*]}]}
echo "$choice"
Video
::Be the first ! La débilité du web :-D
[Maximiser] [Trackback]
Date : 2007-12-21@15:50:03
Rang : 0
Notes
::Bug call of duty 4 demo iw3sp.exe
[Trackback]
Date : 2007-10-13@12:39:52
Rang : 0
Un petit problème avec la demo de call of duty 4 modern warfare (cod 4 pour les intimes) m'a empeché de découvrir ce jeux que j'attend depuis une plombe.
Lorsque je lance la démo, paf windows me dit iw3sp.exe a rencontré un problème ...
Aprés analyse du problème je me suis rendu compte que ce n'était pas iw3sp.exe qui planté mais mssmp3.asi situé dans le dossier "miles" de l'installation de la démo.
J'ai ensuite remarqué qu'en le renommant la démo marché : "Houra, Houra !!" ...
Bref pour ceux qui ont le même problème voilà comment faire :
Aller dans le dossier d'installation puis dans le dossier miles
Renommer le fichier mssmp3.asi en mssmp3.asi.bak
Ensuite relancer la démo ça devrait marcher
Annuaire
::Bonweb
[Trackback]
Date : 2006-12-03@18:34:13
Rang : 0
http://www.bonweb.com/?linkb=669011
Linux
::Benchmark linux Nvidia 6800 GS
[Trackback]
Date : 2006-11-01@13:34:12
Rang : 0
Config AMD XP3200
1Go PC 3200
6800 GS AGP8X
pcr@kbuntu:~$ glxgears -printfps
63990 frames in 5.0 seconds = 12797.918 FPS
64413 frames in 5.0 seconds = 12882.484 FPS
65375 frames in 5.0 seconds = 13074.950 FPS
65699 frames in 5.0 seconds = 13139.732 FPS
62911 frames in 5.0 seconds = 12582.071 FPS
59305 frames in 5.0 seconds = 11860.900 FPS
pcr@kbuntu:~$ cat /proc/driver/nvidia/agp/status
Status: Enabled
Driver: AGPGART
AGP Rate: 8x
Fast Writes: Enabled
SBA: Enabled
MySQL
::Benchmark Mysql Cluster
[Trackback]
Date : 2006-09-29@09:35:51
Rang : 0
Insert Update Select Delete
Duration MySQL 6.0097 7.4832 21.8060 7.2897
Duration MySQLi 4.4868 5.2704 22.5268 5.4037
Duration Database class 6.1125 5.6219 22.3915 7.3680
Liens
::Blog de pub marante
[Trackback]
Date : 2006-08-30@16:53:04
Rang : 0
Blog de pub marante
http://coloribus.com/
LAMP
::Benchmark Mysql Innodb
[Trackback]
Date : 2006-08-04@15:34:29
Rang : 0
Insert Update Select Delete
Duration MySQL 1.1019 0.2250 0.1419 0.1938
Duration MySQLi 1.3195 0.2455 0.1275 0.2128
Duration MySQLi prepared 1.3391 0.3774 0.3775 0.4326
Duration PDO 1.1913 0.3504 0.3353 0.3140
Duration PDO prepared 1.3288 0.3020 0.3246 0.2978
LAMP
::Benchmark Mysql Myisam
[Trackback]
Date : 2006-08-04@15:34:04
Rang : 0
Insert Update Select Delete
Duration MySQL 0.1709 0.3449 0.1602 0.1621
Duration MySQLi 0.1682 0.2412 0.1299 0.1449
Duration MySQLi prepared 0.2910 0.7535 0.4124 0.3588
Duration PDO 0.3681 0.4763 0.3347 0.2865
Duration PDO prepared 0.3208 0.7160 0.3223 0.3195
LAMP
::Benchmark Mysql Cluster
[Trackback]
Date : 2006-08-04@15:33:25
Rang : 0
Insert Update Select Delete
Duration MySQL 0.6644 1.0387 0.4491 0.9027
Duration MySQLi 1.1185 1.3658 0.5450 0.8798
Duration MySQLi prepared 0.7861 1.0597 19.4127 1.2978
Duration PDO 1.1783 1.4101 20.6983 1.3724
Duration PDO prepared 1.1377 0.9917 19.6066 0.9778
LAMP
::Benchmark 100 requetes mysql (sans cluster) (SELECT)
[Trackback]
Date : 2006-08-04@10:39:04
Rang : 0
Duration MySQL : 11.54208 ms - 0.11542 mseconds per query
Duration MySQLiN : 14.25552 ms - 0.14256 mseconds per query
Duration MySQLi : 39.30235 ms - 0.39302 mseconds per query
Duration PDON : 29.68669 ms - 0.29687 mseconds per query
Duration PDO : 30.13372 ms - 0.30134 mseconds per query
LAMP
::Benchmark 100 requetes mysql cluster (SELECT)
[Trackback]
Date : 2006-08-04@10:37:53
Rang : 0
Duration MySQL : 45.24755 ms - 0.45248 mseconds per query
Duration MySQLiN : 42.86647 ms - 0.42866 mseconds per query
Duration MySQLi : 1,957.40414 ms - 19.57404 mseconds per query
Duration PDON : 2,050.04883 ms - 20.50049 mseconds per query
Duration PDO : 2,051.59736 ms - 20.51597 mseconds per query
Liens
::Blog photo Clément
[Trackback]
Date : 2006-06-29@11:02:20
Rang : 0
http://www.flickr.com/photos/clemvietnam
Liens
::Blog Stéphane China
[Trackback]
Date : 2006-06-28@09:48:48
Rang : 0
Blog stephane connectin
http://greekinbeijing.over-blog.com
Musique
::blogmusik
[Trackback]
Date : 2006-06-01@19:41:01
Rang : 0
Blog musique ipod
http://www.blogmusik.net/
Liens
::Brillant button
[Trackback]
Date : 2006-05-19@23:15:25
Rang : 0
http://www.lucazappa.com/brilliantMaker/buttonImage.php
