blog mail me! feed

Archive for March, 2009

看来得改工作习惯了.

我已经受够了润新的网络, 这个网络足够糟糕以至于让更新和修改代码变得异常痛苦.
不过坏事总是会带来些积极的方面, 不是么?

我回顾了下自己更新(尤其是flatGrid)代码的习惯, 普遍是在本地修改好后,
直接通过winscp扔到服务器端,
是的, 没有SVN, 没有git, 什么都没有, 简单粗暴粗犷的override.
甚至在12个月前我还有一个windows端的Apache+PHP+MySQL的调试环境,
现在则直接在生产环境完成一切实验.

会有很多有趣的事情,
比如在家里更新了50行代码,
回到学校更新了10行代码, 恩, 那50条的努力于是付诸东流.

在惰性的阻挠下, 我仍然坚持着这样的粗暴, 缺乏版本管理, 原始而落后的代码管理模式,
直到润新糟糕的网络可以让winscp在1min内挂掉3次, 坚定了更改工作习惯的信念.

切到了Ubuntu, nginx+php-fpm+php, 和207/209基本一致的生产环境,
启用SVN, 甚至准备写一个自动部署更新的脚本.
我想, 这终于是一个熄灯后可以继续写代码的理由了.
lol.

单色设计.

发现最近的房地产广告很流行单色背景和白色文字了,
加上简单的图形,
效果还不错.

最主要是, 选的色都让人觉得很舒服,
想用相机拍下来, 又觉得肯定会偏色, 就没这个效果了.
郁闷, 改天调好白平衡去拍.

黑云压城.

11:17, 润新

11:17, 润新

就这么飘起细雨来了,
直到转瞬的20分钟后, 天色又明亮了起来.

空气中都是湿润的色彩和味道.

字符串连接性能.

以前看了不少有关.NET下String和StringBuilder的性能对比,
前几天正好也看到了est分享的一篇讲Python一些tricks的文章,
里边提到了用”+”连接字符串的性能问题.

早上顺手做了个benchmark.

首先用list插入元素, 接着用join方法连接字符串:

import time

pad = "xYz%2#$lkjw4" * 50
pad_pool = []

t_s = time.time()

for x in xrange(10000):
	pad_pool.append(pad)

base = "".join(pad_pool)
print "time:", time.time() - t_s

time: 0.0179998874664

接着用”+”来连接字符串:

import time

base = ""
pad = "xYz%2#$lkjw4" * 50

t_s = time.time()

for x in xrange(10000):
	base += pad

print "time:", time.time() - t_s

time: 10.5399999619

————————————–

嗯, 用”+”来连接很有点惨烈啊, 这和.NET里的String的直接连接有点像,
不过这两个时间间的gap显然还要大得多.

我个人估计是”+”操作的需要不停的申请分配内存,
导致的性能低下?

晚睡晚起节律感.

俺的域名下, 24小时中平均每小时的平均访问量

俺的域名下, 24小时中平均每小时的平均访问量

把我的日志从209上扒拉了下来, 本地用ioTATS跑了一次离线的处理,
(所以说ioTATS对于一个文件而不是管道操作, 就可以成为离线的日志处理 -___-#),
102000+条访问记录, 跑了35s, 这是不挂载os和browser以及refererer分析插件的情况下,
大概一条日志记录需要0.35个ms来处理.

可以预期的是在挂载上了全部插件后, 一条日志的处理时间会爬升到0.5ms以上?
不知道这个速度是快是慢.

*UPDATE*
事实上因为默认是读取管道操作, 所以离线处理没有对多核进行优化, 始终是一个线程在跑.

另外的问题可能在I/O缓冲区这里, 我把缓冲区设置得很小, 所以可能频繁的读取会造成性能下降?

既然数据都被扒拉下来处理到sqlite里了, 索性就自己随便看了看统计数据,
如图是过去的10个月中我的域名下HTTP请求的时间分布.
考虑到外国友人较少, 嗯, 这个图形是否说明了大家基本都是在9~10am才开机上网(甚至才起床呢?)

图中的两个低谷莫非反映了午餐和晚餐不可抗拒的吸引力?
或者是午睡的习惯?

照这个理论分析, 6am的流量降到了最低, 看来夜猫子也就最多抗到5am?
哈哈哈哈, 数据仅供参考
:>

服务器升级.

目前去年5月几经折腾买入的二手Hitachi服务器工作一切良好,
就是36G的硬盘有点小.
索性周二在淘宝上订了块二手Maxtor 174g 10000r SCSI硬盘, 310, 
周四早上去机房, 把硬盘插好, 顺利的自检通过.

本想跑个badblocks检查下坏道, 无奈忘了加-s 参数也忘了用& 让它在后台跑,
10分钟后putty就被润新脆弱的网速折磨挂了, 坏道检测也就中止了-___-.

接着把原来的FAT32分区全部删掉(哦, 数据删光了, 某b还念念不忘有没有点秘密的玩意儿)
整个盘重新做成了Linux LVM,
打算着格式化为reiserfs, 这样配合LVM可以在线的扩充逻辑卷容量,
嗯… 很悲惨的发现内核里没reiserfs -____-#

又转而试图作成ext4, 结果用mount -t ext4 也mount不上, 郁闷(有牛人解释下咩?).
最后还是做成ext3; 把htdocs全部迁移; nginx配置修改好,
就基本完成平滑迁移了.

话说等考完G了重做一次Debian, 把reiserfs扔内核里去.