图解Linux系统负荷

一、查看系统负荷
如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了。
在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。(另外,它们在苹果公司的Mac电脑上也适用。)
你在终端窗口键入uptime,系统会返回一行信息。

这行信息的后半部分,显示”load average”,它的意思是”系统的平均负荷”,里面有三个数字,我们可以从中判断系统负荷是大还是小。

为什么会有三个数字呢?你从手册中查到,它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。
如果你继续看手册,它还会告诉你,当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。
那么很显然,”load average”的值越低,比如等于0.2或0.3,就说明电脑的工作量越小,系统负荷比较轻。
但是,什么时候能看出系统负荷比较重呢?等于1的时候,还是等于0.5或等于1.5的时候?如果1分钟、5分钟、15分钟三个值不一样,怎么办?
继续阅读图解Linux系统负荷

JSON对象和String的相互转换

比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:

var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。
JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

上面的转换可以这么写:

var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
alert(typeof(aToStr));  //string
alert(typeof(bToObj));//object

JSON.stringify()
ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象,

var c='{"name":"Mike","sex":"女","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));

jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。

原文地址:http://www.css88.com/archives/3919

MySQL遇到的两个问题

COUNT(DISTINCT `field`)是魔鬼,数据量稍大一些,执行此操作就会提示内存不足。
建议改用临时表加GROUP BY的方法来解决。

SELECT COUNT(*) FROM (SELECT `field` FROM `table` GROUP BY `field`) a LIMIT 1;

插入数据时MYSQL返回#1062 – Duplicate entry ‘127’ for key ‘PRIMARY’,这种问题是没有规律的,不一定什么时候就出现了,不过一般是数据量比较大的时候,比如达到6位数出现的几率就多了一点。

巧用javascript数组实现数据结构-堆栈与队列

前几天,有一位朋友问起我,Javascript如何实现堆栈和队列。我想了想,JavaScript里貌似只有数组,没有堆栈和队列这两种类型,于是我想是否可以利用JavaScript里的数组模拟实现这两种数据类型,答案是肯定的,因为在其他一些编程语言(如PHP)里也没有这两种类型,但它们同样是利用数组来实现。

简单的利用javascript的数组实现数据结构中的堆栈和队列。
继续阅读巧用javascript数组实现数据结构-堆栈与队列

Shell脚本也玩面向对象

编程这个世界太有趣了,总是能看到一些即别出心裁的东西。你有没有想过在写Shell脚本的时候可以把你的变量和函数放到一个类中?不要以为这不可能,这不,我在网上又看到了一个把Shell脚本整成面向对象的东西。Shell本来是不支持的,需要自己做点东西,能搞出这个事事的人真的是hacker啊。

当然,这里并不是真正的面向对象,因为其只是封装罢了,还没有支持继承和多态。最变态的是他居然还支持typeid,靠!

下面让我们看看他是怎么来做的。下面的脚本可能会有点费解。本想解释一下,后来想想,还是大家自己专研一下吧,其实看懂也不难,给大家提几个点吧。
继续阅读Shell脚本也玩面向对象

腾讯CMEM的PHP扩展编译安装

CMEM是什么?
CMEM全称为Cloud Memory,是腾讯提供的高性能内存级持久化存储服务,适用于数据量小、访问量高、key-value存储的场景。

CMEM基于一个存储键/值对的hashmap,数据使用内存存储,并保证数据的持久性。

CMEM PHP Extension是什么?
CMEM基于标准的Memcached协议以及接口,只是将数据获取接口增加返回值设定。 继续阅读腾讯CMEM的PHP扩展编译安装

鲜为人知的PHP大小写敏感规则

PHP对大小写敏感问题的处理比较乱,大家一定要注意。推荐大家始终坚持“大小写敏感”。这里面需要注意的是类和函数不区分大小写。但即使你疏忽了,在调试时解释器也会抓住这个错误的。

一、大小写敏感
1. 变量名区分大小写
所有变量均区分大小写,包括普通变量以 及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$_FILES,$_ENV 等;

< ?php
$abc = 'abcd';
echo $abc; //输出 'abcd'
echo $aBc; //无输出
echo $ABC; //无输出
?>

继续阅读鲜为人知的PHP大小写敏感规则