นั่งดูผลจาก ab (ApacheBench) แล้วสลดหน่อยๆ
$ ab -n 50 -c 10 http://kitty.in.th/ ... Total transferred: 696250 bytes HTML transferred: 688300 bytes Requests per second: 6.02 [#/sec] (mean) ... Connection Times (ms) min mean[+/-sd] median max Connect: 0 20 47.0 0 151 Processing: 1107 1586 467.3 1356 2586 Waiting: 1069 1551 467.5 1322 2546 Total: 1258 1606 469.7 1359 2623 Percentage of the requests served within a certain time (ms) 50% 1359 66% 1444 75% 1513 80% 2380 90% 2577 95% 2586 98% 2623 99% 2623 100% 2623 (longest request)
หลักๆ เป็นเพราะ wiki-to-html มัน render on-demand (เอา wiki text มา render ทุกครั้งที่มี request) มันก็ช้าอะดี เลยแก้ code ใหม่เป็นแบบ pre-render HTML เก็บลงใน database แทนการ ผลที่ได้ ..
$ ab -n 50 -c 10 http://kitty.in.th/ ... Total transferred: 696250 bytes HTML transferred: 688300 bytes Requests per second: 35.25 [#/sec] (mean) ... Connection Times (ms) min mean[+/-sd] median max Connect: 0 26 52.5 0 210 Processing: 41 248 80.5 247 414 Waiting: 6 211 80.4 215 381 Total: 200 274 65.6 253 454 Percentage of the requests served within a certain time (ms) 50% 253 66% 268 75% 278 80% 353 90% 399 95% 414 98% 454 99% 454 100% 454 (longest request)
6.03 requests / sec กับ 35.25 requests / sec. ..
space-time tradeoff = เร็วขึ้นเกือบ 6 เท่า แลกกับพื้นที่เก็บอีกเท่ากว่าๆ .. :)