性能记录
$rt = new RenderTime(); # 计时器, 默认开始计时
}
# 传输层解码(压缩、去除控制字符)
# 目前规则: Post发送数据时使用deflate编码, GET方式发送数据时使用base64编码
$data = self::$isPost ? gzinflate($data) : base64_decode($data);
//$data = base64_decode($data);
# 加密层解码, 加密传输, 保障数据安全
# ....
$req = JsonUtil::decode($data); # 请求数据, 数据层协议JSON
if (self::$isDebugging) { # 刷调试信息
$rt->end(); # 计时器结束
self::$debugMsg .= '
解压耗时:' . $rt->getRenderTime(); # 解码耗时
# 计时器开始
}
new Req($req); # 初始化req()
}
static function Run() {
if (self::$isDebugging) { # 调试模式=>性能记录
$rt = new RenderTime(); # 计时器, 默认开始计时
$rt->start();
}
$app = new AppServer(); # 初始化业务框架
$resp = $app->api(); # 分发处理逻辑
if (self::$isDebugging) { # 组织调试信息
$rt->end(); # 计时器结束
$ms = round($rt->getRenderTime(false) / 1000, 2); # 耗时换算成毫秒
$msi = $ms > 50 ? "$ms" : $ms; # 超过50ms用红色显示
self::$debugMsg .= "
逻辑耗时: $msi 毫秒"; # 逻辑耗时
self::$debugMsg .= '
内存分配:' . number_format(memory_get_peak_usage() / 1024) . 'kb,';
self::$debugMsg .= '内存占用:' . number_format(memory_get_usage() / 1024) . 'kb'; # 内存使用数量(kb)
}
return $resp;
}
static function OverPass($resp) {
$ret = JsonUtil::encode($resp); # 返回值, 数据层协议:JSON
$errinfo = ob_get_clean(); # 检查并截获异常输出
if (self::$isDebugging) { # 附加调试信息和异常输出
$ret .= '