]> git.mxchange.org Git - friendica.git/commitdiff
added simple build-in profiling
authorAlexander Kampmann <programmer@nurfuerspam.de>
Thu, 15 Mar 2012 10:45:06 +0000 (11:45 +0100)
committerAlexander Kampmann <programmer@nurfuerspam.de>
Thu, 15 Mar 2012 10:45:06 +0000 (11:45 +0100)
boot.php
database.sql
index.php
update.php
util/profiler.php [new file with mode: 0755]

index b30f02c9f6b8a97d32757419ba2cc195464cf480..e2494092de370c33e63f4a2a5b3d638029a8d34a 100755 (executable)
--- a/boot.php
+++ b/boot.php
@@ -11,7 +11,7 @@ require_once('include/cache.php');
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
 define ( 'FRIENDICA_VERSION',      '2.3.1278' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.22'    );
-define ( 'DB_UPDATE_VERSION',      1131      );
+define ( 'DB_UPDATE_VERSION',      1132      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
index 35c257f021b97fd9a3e52873452bbecb29522602..f8d4c7fc2476e824d080bddbe0179a7a03ea8d53 100755 (executable)
@@ -857,4 +857,13 @@ INDEX ( `ham` ),
 INDEX ( `term` )
 ) ENGINE = MyISAM DEFAULT CHARSET=utf8;
 
-
+CREATE TABLE IF NOT EXISTS `profiling` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY_KEY , 
+`function` VARCHAR(255) NOT NULL, 
+`file` VARCHAR(255) NOT NULL, 
+`line` INT NOT NULL DEFAULT '-1', 
+`class` VARCHAR(255), 
+`time` FLOAT(10, 2) NOT NULL, 
+INDEX(`function`), 
+INDEX(`file`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
index 5f6d74adb9be383a62e917542f1103f186273d81..688eee2ee274054b94fc12e44d4ac60475a0753a 100755 (executable)
--- a/index.php
+++ b/index.php
@@ -41,6 +41,7 @@ require_once("dba.php");
 $db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
         unset($db_host, $db_user, $db_pass, $db_data);
 
+require_once('util/profiler.php'); 
 
 if(! $install) {
 
index c29394b480968d4e161fb4cb8114a9f20f5261d0..36116341a08b109e8d4be707a8d435d732e19fb0 100755 (executable)
@@ -1122,3 +1122,19 @@ function update_1130() {
        q("ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) ");
 }
 
+/**
+ * CREATE TABLE for profiling
+ */
+function update_1132() {\r
+       q("CREATE TABLE IF NOT EXISTS `profiling` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY_KEY , 
+`function` VARCHAR(255) NOT NULL, 
+`file` VARCHAR(255) NOT NULL, 
+`line` INT NOT NULL DEFAULT '-1', 
+`class` VARCHAR(255), 
+`time` FLOAT(10, 2) NOT NULL, 
+INDEX(`function`), 
+INDEX(`file`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8; ");\r
+}
+
diff --git a/util/profiler.php b/util/profiler.php
new file mode 100755 (executable)
index 0000000..3a3de53
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+function microtime_float()\r
+{\r
+       list($usec, $sec) = explode(" ", microtime());\r
+       return ((float)$usec + (float)$sec);\r
+}\r
+\r
+function tick_event() {
+       static $time = NULL; 
+       
+       if(NULL===$time) {
+               //initialise time with now
+               $time=microtime_float(); 
+               
+               q("INSERT INTO `profiling` (`function`, `file`, `line`, `class`, `time`) VALUES ('initialization', 'index.php', '-1', NULL, '%f'); ",\r
+                               floatval($time-$_SERVER['REQUEST_TIME']));
+       }
+       
+       $elapsed=microtime_float()-$time; 
+       
+       $db_info=array_shift(debug_backtrace()); 
+       $function=$db_info['function']; 
+       $file=$db_info['file'];
+       $line=$db_info['line'];
+       $class=$db_info['class'];
+       
+       //save results
+       q("INSERT INTO `profiling` (`function`, `file`, `line`, `class`, `time`) VALUES ('%s', '%s', '%d', '%s', '%f'); ", 
+                       dbesc($function), dbesc($file), intval($line), dbesc($class), floatval($time)); 
+       
+       //set time to now
+       $time=microtime_float();
+}
+
+declare(ticks=1);\r
+register_tick_function('tick_event');
\ No newline at end of file