added simple build-in profiling
This commit is contained in:
parent
29ade1d9b9
commit
9796e99fa8
2
boot.php
2
boot.php
|
@ -11,7 +11,7 @@ require_once('include/cache.php');
|
||||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_VERSION', '2.3.1278' );
|
define ( 'FRIENDICA_VERSION', '2.3.1278' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1131 );
|
define ( 'DB_UPDATE_VERSION', 1132 );
|
||||||
|
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
11
database.sql
11
database.sql
|
@ -857,4 +857,13 @@ INDEX ( `ham` ),
|
||||||
INDEX ( `term` )
|
INDEX ( `term` )
|
||||||
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
|
) 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;
|
||||||
|
|
|
@ -41,6 +41,7 @@ require_once("dba.php");
|
||||||
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
|
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
|
||||||
unset($db_host, $db_user, $db_pass, $db_data);
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
|
||||||
|
require_once('util/profiler.php');
|
||||||
|
|
||||||
if(! $install) {
|
if(! $install) {
|
||||||
|
|
||||||
|
|
16
update.php
16
update.php
|
@ -1122,3 +1122,19 @@ function update_1130() {
|
||||||
q("ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) ");
|
q("ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CREATE TABLE for profiling
|
||||||
|
*/
|
||||||
|
function update_1132() {
|
||||||
|
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; ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
36
util/profiler.php
Executable file
36
util/profiler.php
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
function microtime_float()
|
||||||
|
{
|
||||||
|
list($usec, $sec) = explode(" ", microtime());
|
||||||
|
return ((float)$usec + (float)$sec);
|
||||||
|
}
|
||||||
|
|
||||||
|
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'); ",
|
||||||
|
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);
|
||||||
|
register_tick_function('tick_event');
|
Loading…
Reference in a new issue