using node js to improve the performance of mobile apps
play

Using Node.js to improve the performance of Mobile apps and Mobile - PowerPoint PPT Presentation

Using Node.js to improve the performance of Mobile apps and Mobile web Tom Hughes-Croucher @sh 1 mmer Scalable Server-Side Code with JavaScript Who is Tom? Wrote W3C Standards 10+ years in the web industry Node Worked on projects


  1. Using Node.js to improve the performance of Mobile apps and Mobile web Tom Hughes-Croucher @sh 1 mmer

  2. Scalable Server-Side Code with JavaScript Who is Tom? • Wrote W3C Standards • 10+ years in the web industry Node • Worked on projects for: Tesco, NASA, Walmart, MySpace, etc Up and Running • ~5 years at Yahoo! including .com • Node team at Joyent Tom Hughes-Croucher @sh 1 mmer

  3. This is a talk about why cell phones suck. @sh 1 mmer

  4. @sh 1 mmer

  5. Radio waves suck (at least compared to fibre or copper) @sh 1 mmer

  6. http://developer.yahoo.com/blogs/ydn/posts/2009/10/a_engineers_gui/ @sh 1 mmer

  7. Radio vs. buildings @sh 1 mmer

  8. @sh 1 mmer

  9. @sh 1 mmer

  10. @sh 1 mmer

  11. @sh 1 mmer

  12. @sh 1 mmer

  13. Desktop Mobile http://www.webperformancetoday.com/2012/04/02/mobile-versus-desktop-latency/ @sh 1 mmer

  14. Ookla/speedtest.net via http://www.slideshare.net/patrickmeenan/velocity-2012-taming-the-mobile-beast/22 @sh 1 mmer

  15. Effect of latency on servers @sh 1 mmer

  16. Shielding Frontends @sh 1 mmer

  17. nginx haproxy web services frontends ATS / data varnish @sh 1 mmer

  18. var client = net.connect(80, domain, function() { client.write("GET / HTTP/1.1\r\n"); t1 = (new Date()).getTime(); }); client.on('end', function() { t2 = (new Date()).getTime(); output.write(domain + ' ' + ((t2-t1)/1000) + 's\n'); }); @sh 1 mmer

  19. Sample of Alexa 5000 macupdate.com 442.3 uzai.com 403.658 wired.jp 238.848 facilisimo.com 205.159 mycokerewards.com 202.757 rbc.cn 192.354 moviesmobile.net 183.157 stop55.com 145.927 dir.bg 137.982 carrefour.fr 112.789 sifyitest.com 111.171 @sh 1 mmer

  20. Event-driven Frontends @sh 1 mmer

  21. Client → Server Server → DB Computation Computation @sh 1 mmer

  22. Not an event frontend @sh 1 mmer

  23. @sh 1 mmer

  24. Server @sh 1 mmer

  25. Request @sh 1 mmer

  26. @sh 1 mmer

  27. Event-driven frontend @sh 1 mmer

  28. Place-holder @sh 1 mmer

  29. @sh 1 mmer

  30. Shared Work Resources @sh 1 mmer

  31. Memory operations @sh 1 mmer

  32. var x = "I am a string" ~1ns Running 1 instruction 2ns Data from l1 cpu cache 5ns Data from l2 cpu cache 80ns Data from ram @sh 1 mmer

  33. @sh 1 mmer

  34. Mobile latency @sh 1 mmer

  35. @sh 1 mmer

  36. 100 Blue Whales Cat @sh 1 mmer

  37. "They went from running 15 servers with 15 instances (virtual servers) on each physical machine, to just four instances that can handle double the traffic." http://venturebeat.com/2011/08/16/linkedin-node/ @sh 1 mmer

  38. Not just simple applications @sh 1 mmer

  39. @sh 1 mmer

  40. @sh 1 mmer

  41. First page load vs. Client MVC @sh 1 mmer

  42. @sh 1 mmer

  43. http://www.belshe.com/2010/05/24/more-bandwidth-doesnt-matter-much/ @sh 1 mmer

  44. Bandwidth Latency Device capability @sh 1 mmer

  45. Barfing data at 3G @sh 1 mmer

Recommend


More recommend