linux单目录文件不要过多,多少是过多?

我们都知道一个文件夹文件不宜过多,文件过多,会导致性能下降,那到底怎样算过多呢?

今天板子决定蹂躏下自己的新mac

因本文旨在讨论相同状态下,性能随单目录文件数量变化而发生的变化,所以未做其他特别设置

准备:
Mac Pro (ssd)一台 (安装ubuntu 12.04 虚拟机 LNMP 环境)
5个文件夹,各分别包含1w、5w、10w、50w、100w个同样内容小文件
压测命令:ab -n 10000 -c 100 ‘http://s1.localhost.com/files.php?num=xxx’

files.php:

$num = empty($_GET['num']) ? 10000 : $_GET['num'];
echo file_get_contents("/..filepath../$num/file_".rand(1,$num));

以下是测试结果:

继续阅读

mysql索引需要了解的几个注意

板子之前做过2年web开发培训(入门?),获得挺多学生好评,这是蛮有成就感的一件事,准备花点时间根据当时的一些备课内容整理出一系列文章出来,希望能给更多人带来帮助,这是系列文章的第一篇

注:科普文章一篇,大牛绕道

索引是做什么的?

索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。
表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。

大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B树中存储。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。 继续阅读

各大搜索引擎提交入口备忘

本文整理了各主流搜索引擎的网址提交入口,新做站的您,自然是不能忽视的

1.google

google在第一,倒不是说google在中文搜索里的重要程度,而是人家的专业,几万个url的sitemap,你提交了,也就几天的事,基本就全收录了,冲着这专业,也得最先在这家提交啊

提交入口:https://www.google.com/webmasters/tools/submit-url

google可以注册一个webmaster账户,提交url,提交sitemap,索引统计,点击统计,分析报告,优化建议应有尽有
入口:http://www.google.com/webmasters/

2.百度

继续阅读

分析pdf文件总页数+fgets()函数无法识别换行符问题

有个小需求,批量分析一批pdf文件的总页数,写(找)了个小函数,如下:


function getPageTotal($path){
    if (!$fp = @fopen($path, 'r')) {
        return false;
    }
    $max=0;
    while(!feof($fp)) {
        $line = fgets($fp,255);
        if (preg_match('/\/Count [0-9]+/', $line, $matches)){
            preg_match('/[0-9]+/',$matches[0], $matches2);
            if ($max<$matches2[0]) $max=$matches2[0];
        }
    }
    fclose($fp);
    return $max;
}

实际使用中,发现有极个别文件识别失败,取样分析后,发现出问题的文件都是mac格式的,那自然就是fgets对mac换行符的识别问题了

查了下手册: fgets

Note: If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the auto_detect_line_endings run-time configuration option may help resolve the problem.

auto_detect_line_endings 这个运行时配置到是从没注意过,ok、稍作修改


function getPageTotal($path){
    ini_set("auto_detect_line_endings",true);

    if (!$fp = @fopen($path, 'r')) {
        return false;
    }
    $max=0;
    while(!feof($fp)) {
        $line = fgets($fp,255);
        if (preg_match('/\/Count [0-9]+/', $line, $matches)){
            preg_match('/[0-9]+/',$matches[0], $matches2);
            if ($max<$matches2[0]) $max=$matches2[0];
        }
    }
    fclose($fp);
    return $max;
}

问题解决!

关于auto-detect-line-endings的解释:

When turned on, PHP will examine the data read by fgets() and file() to see if it is using Unix, MS-Dos or Macintosh line-ending conventions.

This enables PHP to interoperate with Macintosh systems, but defaults to Off, as there is a very small performance penalty when detecting the EOL conventions for the first line, and also because people using carriage-returns as item separators under Unix systems would experience non-backwards-compatible behaviour.

Note: This configuration option was introduced in PHP 4.3.0

拿到驾照

公允2012年12月22日,完成了一个数次被写入年度计划的“计划“——学车

从8月下旬体检开始,到笔试,小路,大路考,今天终于拿到驾照,在考试都顺利的情况下,总计历时4月,码几个字下来,也许对您有用呢

去年有本很火的书——《寻路中国》,作者花了大量篇幅来感慨中国驾校有多不靠谱,诞生了多少马路杀手,你只有经历过一次学车,才会知道,情况也许远比老外文字描述的更严重

好在,据说以后驾照会越来越难了,还没学的,先不用抱怨,我想,这是好事!

废话告一段落,进入正题

1. 要4个月呢?

是的,不过,实际上真正摸车的时间应该不超过20小时

2. 小路考难吗?

小路考全程电子警察,只要”背“好了,就不会有问题

3. 大路考必须交钱才能过吗?

确实听过许多没交钱(上海的”行规“据说是200一个)被故意刁难不让过的,我在考试前也是非常忐忑(倒不是我骨头硬,只是我报的驾校,不容许收这个钱,否则教练会被重罚),但最后也马马虎虎补考通过了(当天一次不及格,可以有一次直接补考机会),因此,交钱应该不是必须的,但确实交过钱的,可以明显发现考官的“尺度松”

4. 最好的学车时间

之所以学车计划年复一年被搁置,我是路痴自然是一个原因,不过最大的原因还是因为时间,一共只有2个月的时间(理论考后),所以起码要保证每个周末都有空(一般教练即便只能分到30分钟给你练车,也会要你在驾校呆上一天),还得再请出几天假去考试,当然,如果有一次没过,时间您再算算,所以,最好的学车时间是在那美丽的大学时光

5. 怎么搞定教练

放弃搞定教练的想法吧,10个教练9个凶,8个骂人,7个收礼,还有1个被你投诉后挺客气的给你穿小鞋,被骂骂就忍了吧,练车顺便再练个好脾气,实在不行,回去看一遍《霸王别姬》,那时候,都那么教徒弟呢

最后,注意行车安全,你看那,马路上一个个,尽是杀手

 

写在thinkinlamp首届架构师大会之后

考虑到本博读者以女性居多,先上个福利图吧

thinkinlamp4位联合创始人,左起,板子,民工,三马,锅巴

废话篇

17日的大会也有些天了,是该总结下了,打分?89.9, 应该不算过分吧

世事往往如此,想要多少成功的喜悦,就得付出多少辛苦的汗水,因为这篇文章主要不是用来诉苦,所以我是不会告诉你非商业化的技术大会,拿到商业化的赞助是有多难,紧靠业余时间服务几百位买了本票的“上帝”是有多不容易,即便是当天,也是布场到次日3点到家,到家后还要整理东西,第二天7点半又要赶到会场是有多累等等,不过,还是上几张图吧

大会前夜11点开始安装背景板

 

大会前夜流水线封装入场礼品袋

 

布置完毕的会场

不过,这些都不重要了,原因马上你也会看到了

大会篇 继续阅读