当前位置:  编程技术>php
本页文章导读:
    ▪php获取CPU使用情况的代码      在php中,可以使用getrusage()获取CPU的使用情况,该方法仅适用于linux系统。 例子: <?php //获取cpu使用情况 print_r(getrusage()); /* 输出 Array ( [ru_oublock] => 0 [ru_inblock] => 0 [ru_msgsnd.........
    ▪php 获取系统常量的方法      在php中,有很多的系统常量,比如取当前的行号 (__LINE__),文件 (__FILE__),目录 (__DIR__),函数名 (__FUNCTION__),类名(__CLASS__),方法名(__METHOD__) 和名 字空间 (__NAMESPACE__)等。   以上常量,可以.........
    ▪php生成唯一id的方法      大家可能习惯用md5()来生成唯一的编号。 md5()有如下的缺点: 1、无序,导致数据库中排序性能下降。 2、太长,需要更多的存储空间。 本文中,我们使用PHP自带的一个函数来生成唯一的id,.........

[1]php获取CPU使用情况的代码
    来源: 互联网  发布时间: 2013-12-24

在php中,可以使用getrusage()获取CPU的使用情况,该方法仅适用于linux系统。
例子:

<?php
//获取cpu使用情况
print_r(getrusage());  
/* 输出 
Array 
( 
[ru_oublock] => 0 
[ru_inblock] => 0 
[ru_msgsnd] => 2 
[ru_msgrcv] => 3 
[ru_maxrss] => 12692 
[ru_ixrss] => 764 
[ru_idrss] => 3864 
[ru_minflt] => 94 
[ru_majflt] => 0 
[ru_nsignals] => 1 
[ru_nvcsw] => 67 
[ru_nivcsw] => 4 
[ru_nswap] => 0 
[ru_utime.tv_usec] => 0 
[ru_utime.tv_sec] => 0 
[ru_stime.tv_usec] => 6269 
[ru_stime.tv_sec] => 0 
) 
*/

解释:
ru_oublock: 块输出操作
ru_inblock: 块输入操作
ru_msgsnd: 发送的message
ru_msgrcv: 收到的message
ru_maxrss: 最大驻留集大小
ru_ixrss: 全部共享内存大小
ru_idrss:全部非共享内存大小
ru_minflt: 页回收
ru_majflt: 页失效
ru_nsignals: 收到的信号
ru_nvcsw: 主动上下文切换
ru_nivcsw: 被动上下文切换
ru_nswap: 交换区
ru_utime.tv_usec: 用户态时间 (microseconds)
ru_utime.tv_sec: 用户态时间(seconds)
ru_stime.tv_usec: 系统内核时间 (microseconds)
ru_stime.tv_sec: 系统内核时间?(seconds)
 
有时需要查看脚本消耗了多少CPU,需要看看“用户态的时间”和“系统内核时间”的值。
秒和微秒部分是分别提供的,可以把微秒值除以100万,并把它添加到秒的值后,可以得到有小数部分的秒数。
例子:

<?php
// sleep for 3 seconds (non-busy)  
sleep(3);  
$data = getrusage();  
echo “User time: “.  
($data['ru_utime.tv_sec'] +  
$data['ru_utime.tv_usec'] / 1000000);  
echo “System time: “.  
($data['ru_stime.tv_sec'] +  
$data['ru_stime.tv_usec'] / 1000000);  
/* 输出 
User time: 0.011552 
System time: 0 
*/

sleep是不占用系统时间的,例子:

<?php
// loop 10 million times (busy)  
for($i=0;$i<10000000;$i++) {  
}  
$data = getrusage();  
echo “User time: “.  
($data['ru_utime.tv_sec'] +  
$data['ru_utime.tv_usec'] / 1000000);  
echo “System time: “.  
($data['ru_stime.tv_sec'] +  
$data['ru_stime.tv_usec'] / 1000000);  
/* 输出 
User time: 1.424592 
System time: 0.004204 
*/

以上代码的运行,大约消耗了14秒的CPU时间,几乎所有的都是用户的时间,因为没有系统调用。
系统时间是CPU花费在系统调用上的上执行内核指令的时间。
例子:

<?php
$start = microtime(true);  
// keep calling microtime for about 3 seconds  
while(microtime(true) – $start < 3) {  
}  
$data = getrusage();  
echo “User time: “.  
($data['ru_utime.tv_sec'] +  
$data['ru_utime.tv_usec'] / 1000000);  
echo “System time: “.  
($data['ru_stime.tv_sec'] +  
$data['ru_stime.tv_usec'] / 1000000);  
/* prints 
User time: 1.088171 
System time: 1.675315 
*/

以上示例,展示了更高级别的cpu消耗。

您可能感兴趣的文章:
php的file_get_contents导致cpu飙升问题的解决方法
php获取CPU使用情况的代码
php中使用proc/loadavg监控CPU的平均负载
php记录服务器负载、内存、cpu状态的代码
php页面缓存的例子(减经cpu与mysql负担)
php获取cpu与内存使用情况的代码一例
php获取linux服务器CPU、内存、硬盘使用率的实现代码
php获取计算机唯一标识信息(cpu,网卡,MAC地址)的代码
PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系
php程序随机记录mysql rand()造成CPU 100%的解决方法


    
[2]php 获取系统常量的方法
    来源: 互联网  发布时间: 2013-12-24

在php中,有很多的系统常量,比如取当前的行号 (__LINE__),文件 (__FILE__),目录 (__DIR__),函数名 (__FUNCTION__),类名(__CLASS__),方法名(__METHOD__) 和名
字空间 (__NAMESPACE__)等。
 
以上常量,可以用于调试,也可以用于一些特殊用途。
比如,可以在include其它文件的时候使用?__FILE__ (当然,也可以在 PHP 5.3以后使用 __DIR__ )。

例子:

<?php
/**
* php 获取系统常量
* by www.
*/
// this is relative to the loaded script’s path  
// it may cause problems when running scripts from different directories  
require_once(‘config/database.php’);  
// this is always relative to this file’s path  
// no matter where it was included from  
require_once(dirname(__FILE__) . ‘/config/database.php’);  
?>
使用 __LINE__ 来输出一些debug信息: 
<?php
// some code  
// …  
my_debug(“some debug message”, __LINE__);  
/* 输出 
Line 4: some debug message 
*/  
// some more code  
// …  
my_debug(“another debug message”, __LINE__);  
/* 输出 
Line 11: another debug message 
*/  
function my_debug($msg, $line) {  
echo “Line $line: $msg\n”;  
}
?>

    
[3]php生成唯一id的方法
    来源: 互联网  发布时间: 2013-12-24

大家可能习惯用md5()来生成唯一的编号。
md5()有如下的缺点:
1、无序,导致数据库中排序性能下降。
2、太长,需要更多的存储空间。

本文中,我们使用PHP自带的一个函数来生成唯一的id,此函数为uniqid()。

例子:

<?php
//生成唯一字符串
// generate unique string  
echo uniqid();  
/* 输出 
4bd67c947233e 
*/  
// generate another unique string  
echo uniqid();  
/* 输出 
4bd67c9472340 
*/  
?> 

以上代码,根据CPU时间戳来生成的,所以在相近的时间段内,id前几位是一样的,这也方便id的排序。

为避免重复,可以在id前加上前缀,例如:

<?php
//生成唯一id,添加前缀
//edit by www.
// 前缀  
echo uniqid(‘foo_’);  
/* 输出 
foo_4bd67d6cd8b8f 
*/  
// 有更多的熵  
echo uniqid(”,true);  
/* 输出 
4bd67d6cd8b926.12135106 
*/  
// 都有  
echo uniqid(‘bar_’,true);  
/* 输出 
bar_4bd67da367b650.43684647 
*/
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3