Professional Website Performance: Optimizing the Front-End and Back-End potx

484 975 0
Professional Website Performance: Optimizing the Front-End and Back-End potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

www.it-ebooks.info ffirs.indd iiffirs.indd ii 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info PROFESSIONAL WEBSITE PERFORMANCE INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii  PART I FRONT END CHAPTER 1 A Refresher on Web Browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 CHAPTER 2 Utilizing Client-Side Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 CHAPTER 3 Content Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 CHAPTER 4 Keeping the Size Down with Minifi cation . . . . . . . . . . . . . . . . . . . . . . . . . 53 CHAPTER 5 Optimizing Web Graphics and CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 CHAPTER 6 JavaScript, the Document Object Model, and Ajax . . . . . . . . . . . . . . . . . 111  PART II BACK END CHAPTER 7 Working with Web Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 CHAPTER 8 Tuning MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 CHAPTER 9 MySQL in the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 CHAPTER 10 Utilizing NoSQL Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 CHAPTER 11 Working with Secure Sockets Layer (SSL) . . . . . . . . . . . . . . . . . . . . . . . . 359 CHAPTER 12 Optimizing PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375  PART III APPENDIXES APPENDIX A TCP Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 APPENDIX B Designing for Mobile Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 APPENDIX C Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417 INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 ffirs.indd iffirs.indd i 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info ffirs.indd iiffirs.indd ii 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info PROFESSIONAL Website Performance OPTIMIZING THE FRONT END AND THE BACK END Peter Smith John Wiley & Sons, Inc. ffirs.indd iiiffirs.indd iii 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info Professional Website Performance: Optimizing the Front End and the Back End Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2013 by John Wiley & Sons, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-1-118-48752-5 ISBN: 978-1-118-48751-8 (ebk) ISBN: 978-1-118-55172-1 (ebk) ISBN: 978-1-118-55171-4 (ebk) Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions. Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and speci cally disclaim all warranties, including without limitation warranties of  tness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at http://booksupport .wiley.com . For more information about Wiley products, visit www.wiley.com. Library of Congress Control Number: 2012949514 Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trade- marks or registered trademarks of John Wiley & Sons, Inc. and/or its af liates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or vendor mentioned in this book. ffirs.indd ivffirs.indd iv 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info To my wife, Stef, and my parents ffirs.indd vffirs.indd v 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info ffirs.indd viffirs.indd vi 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info ABOUT THE AUTHOR PETER G. SMITH has been a full-time Linux consultant, web developer, and system administrator, with a particular interest in performance for the past 13 years. Over the years, he has helped a wide range of clients in areas such as front-end performance, load balancing and scalability, and database opti- mization. Past open source projects include modules for Apache and OSCommerce, a cross-platform IRC client, and contributions to The Linux Documentation Project (TLDP). ABOUT THE TECHNICAL EDITOR JOHN PELOQUIN is a software engineer with back-end and front-end experience ranging across web applications of all sizes. Peloquin earned his B.A. in Mathematics from the University of California at Berkeley, and is currently a lead engineer for a healthcare technology startup, where he makes heavy use of MySQL, PHP, and JavaScript. He has edited Professional JavaScript for Web Developers, 3rd Edition by Nicholas Zakas (Indianapolis: Wiley, 2012) and JavaScript 24-Hour Trainer by Jeremy McPeak (Indianapolis: Wiley, 2010). When he is not coding or col- lecting errata, Peloquin is often found engaged in mathematics, philosophy, or juggling. ffirs.indd viiffirs.indd vii 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info ffirs.indd viiiffirs.indd viii 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info [...]... contention, or back-end scripts that are taking a long time to generate the page Finally, the server returns a response to the client, which is shown by the fi nal section of the bar The size of this section is dependent on the size of the resource being returned and the available bandwidth The number following the bar is the total time for the resource, from start to finish After the web browser fetches the. .. request 2, there is no DNS lookup — the browser already has the response cached For request 5, the resource resides on a subdomain, ssl.gstatic.com, so this does incur a DNS lookup Also notice two vertical lines at approximately the 40-millisecond and 55-millisecond marks The fi rst line indicates the point at which the browser began to render the page The second line indicates the point at which the onLoad... This shows the idle time (That is, the CPU is doing nothing.) ➤ wa — This shows the time that the CPU is waiting on I/O id (idle) is naturally the most preferable state to be in, whereas wa (waiting) is the least wa indicates that the CPU has things to do but can’t because it’s waiting on other hardware Usually, this is the disks, so check for high values in the io and swap columns Whether the CPU will... code depends on the nature of the applications running on the machine Many of the applications discussed in this book spend a lot of time sending and receiving data over the network, and this is usually implemented at the kernel level The previous vmstat example was taken from a web server at a fairly quiet time of the day Let’s look at another example, taken from the same server, while the nightly backup... broadband because the WPT tests are presumably conducted from quite powerful and well-connected hardware The output of Firebug is similar to that of WPT, complete with the two vertical lines representing the start and end of rendering Each resource can be clicked to expand a list of the headers sent and received with the request System Monitoring This book is intended to be platform-neutral Whether... showing the order in which the browser is requesting resources, and the time that it takes each resource to download Most waterfall tools also show things like the time spent for domain name service (DNS) lookups, for establishing a TCP connection to the web server, for parsing and rendering data, and so on There are a lot of waterfall tools out there — some run in your browser; others are websites... handshake, see Appendix A, “TCP Performance”), and possibly waiting for the web server to spawn a new worker process to handle the request In this example, that took approximately 70 milliseconds The next section shows the time to fi rst byte (TTFB) At the beginning of this section, the client has issued the request and is waiting for the server to respond There’ll always be a slight pause here (approximately... memcache, and mongodb In this book, you’ll discover many of the advanced features of these technologies, and the ways in which they can be utilized to provide scalable, high-performance websites You’ll learn current performance best practices, tips for improving your existing sites, and how to design with scalability in mind The browser market is wide and varied The discussions in this book focus on the. .. event fi red — that is, the point at which the page had fi nished loading You’ll learn more about these waterfall views later in this book — you’ll learn how to optimize the downloading order, why some of the requests have a connection overhead and others don’t, and why there are sometimes gaps where nothing seems to be happening Firebug The downside to WPT is that it shows how the page loads on a remote... shows the fi rst half second in more detail FIGURE I-3 The section at the beginning of the fi rst request indicates a DNS lookup — the browser must resolve www.google.com to an IP address This took approximately 50 milliseconds The next section indicates the time taken to establish a connection to the web server This includes setting up the TCP connection (if you’re unfamiliar with the three-way handshake, . 05/11/12 5:02 PM05/11/12 5:02 PM www.it-ebooks.info Professional Website Performance: Optimizing the Front End and the Back End Published by John Wiley & Sons,. or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the

Ngày đăng: 17/03/2014, 12:20

Mục lục

  • Professional Website Performance: Optimizing the Front End and the Back End

  • Copyright

  • About The Author

  • About The Technical Editor

  • Credits

  • Acknowledgments

  • Contents

  • Introduction

    • Why Speed Is Important

    • Tools of the Trade

    • Who This Book Is For

    • What This Book Covers

    • How This Book Is Structured

    • What You Need To Use This Book

    • Conventions

    • Errata

    • P2P.Wrox.Com

    • Part I: Front End

      • Chapter 1: A Refresher on Web Browsers

        • A Brief History of Web Browsers

          • Netscape Loses Its Dominance

          • The Growth of Firefox

          • The Present

          • Inside HTTP

            • The HyperText Transfer Protocol

Tài liệu cùng người dùng

Tài liệu liên quan