Close #9 Analyse des performances de `lightdb`

This commit is contained in:
xdrm-brackets 2016-05-18 11:44:31 +02:00
parent 3ecfae2831
commit 97f8bcab68
11 changed files with 2188 additions and 18 deletions

View File

@ -87,7 +87,129 @@
// }
$req = new ModuleRequest('download/phone', array('subjects'=>array(1)));
$req->download();
// $req = new ModuleRequest('download/phone', array('subjects'=>array(1)));
// $req->download();
/* [4] Analyse des performances de `lightdb`
=========================================================*/
$start = microtime(true);
$db = new lightdb('test1', __ROOT__.'/tmp/');
/* (0) Création des objets à insérer */
// $object_10 = array();
// for( $i = 0 ; $i < 10 ; $i++ )
// $object_10["key-$i-"] = "value-$i-";
// $o10len = strlen( json_encode($object_10) );
//
// $object_100 = array();
// for( $i = 0 ; $i < 100 ; $i++ )
// $object_100["key-$i-"] = "value-$i-";
// $o100len = strlen( json_encode($object_100) );
//
// $object_1000 = array();
// for( $i = 0 ; $i < 1000 ; $i++ )
// $object_1000["key-$i-"] = "value-$i-";
// $o1000len = strlen( json_encode($object_1000) );
/* (1) Insertion de 1000 données */
// {1} Insertion d'objects de taille 10 //
// var_dump("Inserting 1000* object_10($o10len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->insert("object-10-$i", $object_10);
//
// $stop = microtime(true);
// var_dump('1000 lines inserted in '.($stop-$start).' sec.');
//
// // {2} Insertion d'objects de taille 100 //
// var_dump("Inserting 1000* object_100($o100len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->insert("object-100-$i", $object_100);
//
// $stop = microtime(true);
// var_dump('1000 lines inserted in '.($stop-$start).' sec.');
//
// // {3} Insertion d'objects de taille 1000 //
// var_dump("Inserting 1000* object_1000($o1000len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->insert("object-1000-$i", $object_1000);
//
// $stop = microtime(true);
// var_dump('1000 lines inserted in '.($stop-$start).' sec.');
/* (2) Récupération de 1000 données */
// {1} Récupération d'objects de taille 10 //
// var_dump("Fetching 1000* object_10($o10len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->fetch("object-10-$i");
//
// $stop = microtime(true);
// var_dump('1000 lines fetched in '.($stop-$start).' sec.');
//
// // {2} Récupération d'objects de taille 100 //
// var_dump("Fetching 1000* object_100($o100len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->fetch("object-100-$i");
//
// $stop = microtime(true);
// var_dump('1000 lines fetched in '.($stop-$start).' sec.');
//
// // {3} Récupération d'objects de taille 1000 //
// var_dump("Fetching 1000* object_1000($o1000len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->fetch("object-1000-$i");
//
// $stop = microtime(true);
// var_dump('1000 lines fetched in '.($stop-$start).' sec.');
/* (3) Récupération de 1000 données */
// {1} Récupération d'objects de taille 10 //
// var_dump("Deleting 1000* object_10($o10len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->delete("object-10-$i");
//
// $stop = microtime(true);
// var_dump('1000 lines deleted in '.($stop-$start).' sec.');
//
// // {2} Récupération d'objects de taille 100 //
// var_dump("Deleting 1000* object_100($o100len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->delete("object-100-$i");
//
// $stop = microtime(true);
// var_dump('1000 lines deleted in '.($stop-$start).' sec.');
//
// // {3} Récupération d'objects de taille 1000 //
// var_dump("Deleting 1000* object_1000($o1000len)");
// $start = microtime(true);
//
// for( $i = 0 ; $i < 1000 ; $i++ )
// $db->delete("object-1000-$i");
//
// $stop = microtime(true);
// var_dump('1000 lines deleted in '.($stop-$start).' sec.');
$db->close();
var_dump('total execution time : '.(microtime(true)-$start).' sec');
?>

View File

@ -6,9 +6,10 @@
class lightdb{
// REPERTOIRE RACINE DE TOUTES LES BDD
public static $root = __ROOT__.'/src/upload/';
public static $default_root = __ROOT__.'/';
// ATTRIBUTS
private $root;
private $dbname;
private $dir;
private $index;
@ -22,11 +23,13 @@
* @dbname<String> Nom de la base de données
*
*/
public function __construct($dbname){
public function __construct($dbname, $root=null){
/* [0] On récupère les attributs
=========================================================*/
$this->root = is_null($root) ? self::$default_root : $root;
$this->dbname = $dbname;
$this->dir = self::$root.$dbname.'/';
$this->dir = $this->root.$dbname.'/';
/* [1] Création du répertoire s'il n'existe pas
=========================================================*/

View File

@ -133,7 +133,7 @@
$output = array();
// On ouvre une instance de la base de données
$db = new lightdb('phone_storage/db');
$db = new lightdb('db', __ROOT__.'/src/upload/phone_storage/');
/* [1] On construit les fichiers de chaque sujet

View File

@ -202,7 +202,7 @@
/* [6] On enregistre tout dans 'lightdb'
=========================================================*/
$db = new lightdb('phone_storage/db');
$db = new lightdb('db', __ROOT__.'/src/upload/phone_storage/');
$db->insert( $subject_id, $file );
$db->close();
@ -225,6 +225,7 @@
return array(
'ModuleError' => ManagerError::Success,
'subject_id' => $subject_id
);
}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"1":{"line":0,"hash":"95ad3f4b33bdef63dae17b5cafee1e39c6233314"}}
{"1":{"line":0,"hash":"95ad3f4b33bdef63dae17b5cafee1e39c6233314"},"69":{"line":1,"hash":"3d2eb540fa5b2c5e020f759a7627f899875df978"}}

View File

@ -1 +1 @@
68
136

View File

View File

@ -1,9 +0,0 @@
"test0"
"test1"
"test2"
"test3"
"test4"
"test5"
"test6"
"test7"
"test8"

2051
tmp/test1/data Normal file

File diff suppressed because one or more lines are too long

1
tmp/test1/index Normal file

File diff suppressed because one or more lines are too long