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
Xem thêm: Professional Website Performance: Optimizing the Front-End and Back-End potx