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 ( `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;
$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) {
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
+}
+
--- /dev/null
+<?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