gzip

A 1-post collection

Boosting Web Responsiveness with Gzip on Nginx

กล่าวถึงความเร็วในการโหลดแล้ว ... บางทีผมก็คิดว่าเน็ตสมัยนี้ก็เร็วแล้ว เข้าเว็บไรก็ไม่ได้รอนาน จึงไม่ได้ให้ความสำคัญในส่วนนี้มากนัก ผมมองข้าม "มือถือ" ไปถนัด.. หลังจากได้ดู วิดีโอ (ซึ่งเป็นวีดีโอที่ดีมากแนะนำอย่างยิ่ง :D) กล่าวว่า เว็บสำหรับมือถือควรเข้าได้ในเวลาไม่มากกว่า 1 วินาที ... ไม่ได้หมายความว่าต้องโหลดได้ทั้งเว็บแต่ต้องมีอะไรบอกว่า "คุณได้เข้าเว็บไปแล้วนะครับ" ตรงนี้สำคัญมาก เพราะหากเว็บเราตอบสนองได้ดีคนเข้าเว็บก็จะอยากเข้าเว็บเราอีกในอนาคต

ปัญหาก็เกิดขึ้นเนื่องจากหากเราใช้ 3g ในการเข้าอินเตอร์เน็ต แค่ช่วงติดต่อกับสถานีพื้น (ก่อนที่จะได้ส่งข้อมูลอะไร) ก็ต้องเสียเวลาไม่น้อยกว่า 200 ms ไปแล้ว และยังต้องมี DNS, TLS (ถ้ามี) แล้วจึงเริ่มโหลด ตรงนี้เราไม่น่าจะเหลือเวลาเกินกว่า 500 ms จาก 1 วินาที และเนื่องจาก TCP connection มีพฤติกรรมเป็น slow-start คือ round-trip แรกจะรับข้อมูลได้ในขนาด window size ที่จำกัดไว้เล็ก ๆ ในวีดีโอบอกว่าประมาณ 14 KB (กล่าวคือถ้าข้อมูลที่ต้องโหลดไม่เกินนี้ก็จะใช้แค่ 1 RTT ซึ่งจะเร็วมาก; update - OS X Yosemite มี w) และเนื่องจาก round-trip time ของมือถือค่อนข้างสูงกว่าเน็ตที่ใช้ตามบ้านมาก เช่น 3g คุณภาพดีอาจจะมี RTT อยู่ที่ 100 ms (อาจจะแย่กว่านี้ในกรณีปกติ) ซึ่งก็สูงกว่าเน็ตตามบ้านที่น่าจะคาดหวังไว้ไม่เกิน 50 ms เพราะฉะนั้น 1 RTT ของมือถือจึงมีราคา แพง กว่าเน็ตบ้านมาก เมื่อเป็นเช่นนี้การลดปริมาณการโหลดในช่วงแรกให้ได้มากที่สุดก็จะทำให้ผู้ใช้รู้สึกว่าเว็บนี้โหลดได้เร็

อ่านต่อ »