February 28, 2010

事实证明Profiling总是必要的...

之前就隐隐约约怀疑自己Server端Resize图片的function可能会有Performance Hit…昨天用Firebug看了一下居然在没有Cache的情况下每次Reload要7秒钟Page才开始Render, 之前都一直在等待Server的Response…被惊到了…原来用的getimagesize();的php function要把图片先下载到server然后才能判断大小, 期间会Block所有Render…所以就在那里活活的wait了7秒钟了…

开始想用JS来做客户端的Resize, 看了一会会jQuery, 决定第二天再写…后来突然想到其实可以直接把图片的大小存在Server端的post-meta…反正要Resize的只有post-image这一张图片…这样每个帖子第一次访问的时候server会访问一下图片, 把大小存下来, 之后其他人的访问就可以直接从数据库读大小, 就是秒间的事了…

改了两分钟搞定, 等待Server response的时间从7秒降到了0.7秒…

改完的代码如下:

(link)

No comments: