售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Second Edition
Copyright
ASP.NET Core 2 High Performance
Second Edition
Credits
Foreword
About the Author
About the Reviewer
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
What's New in ASP.NET Core 2?
What's new in Core 2
What's new in .NET Core 2
Performance improvements
What's new in ASP.NET Core 2
Performance improvements
Standards
New C# features
C# 6
String interpolation
Null conditional
Exception filters
Asynchronous availability
Expression bodies
C# 7
Literals
Tuples
Out variables
References
Patterns
More expression bodies
More asynchronous improvements
JavaScript
Summary
Why Performance Is a Feature
Performance as a feature
Common classes of performance problems
Language considerations
Types of performance problems
When performance matters
Slower is sometimes better
Why issues are missed
Measuring
The benefits of planning ahead
Understanding hardware
Storage access speeds
Scaling approach changes
Tools and costs
Tools
Looking at some alternative tools
The new .NET
Summary
Setting Up Your Environment
Windows
Visual Studio 2017
Installing VS
Installing .NET Core 2
Creating your first app
Mac
Visual Studio for Mac
Installing VS Mac
Installing .NET Core 2
Creating your first app
Visual Studio Code
Linux
Getting started with .NET Core on Linux
Installing .NET Core 2
Creating your first app
Containerization with Docker
Using ASP.NET Core 2 with Docker
Summary
Measuring Performance Bottlenecks
Tools
SQL
SQL Server Profiler
Executing a simple query
MiniProfiler
Application profiling
Glimpse
Using Glimpse
IDE
Monitoring HTTP
Browsers
Chrome
Firefox
Fiddler
Network
Microsoft Message Analyzer
Wireshark
Roll your own
Science
Repeatability
Only change one thing
Summary
Fixing Common Performance Problems
Latency
Asynchronous operations
Simple asynchronous tools
Background queuing
Hangfire
Select N+1 problems
Efficient paging
Static site generators
Pragmatic solutions with hardware
A desktop example
Web applications
Oversized images
Image resolution
Image format
Summary
Addressing Network Performance
Internet protocols
TCP/IP
Slow-start
HTTP
Headers
HTTP methods
Status codes
Encryption
Key exchange
Delay diagnostics
Performance tweaks
HTTP/2
WebSockets
Compression
Lossless compression algorithms
Bundling and minification
Bundling
Minification
Changes in ASP.NET Core
Image optimization
PNG
JPEG
Other image formats
Resizing images
Caching
Browser
Server
Proxy servers between you and your users
CDNs
Summary
Optimizing I/O Performance
Input/output
Categories of I/O
Disks
Virtual filesystems
Databases
APIs
Network diagnostics tools
Ping
Tracert
Nslookup
Build your own
Solutions
Batching API requests
Efficient DB operations
Database tuning
Reporting
Aggregates
Sampling
Inserting data
GUIDs
Advanced DB topics
Simulation and testing
Summary
Understanding Code Execution and Asynchronous Operations
Getting started with the core projects
.NET Core
ASP.NET Core
Kestrel
Data structures
Lists
Dictionaries
Collection benchmarks
Bloom filters
Hashing and checksums
Hashing benchmarks
Serialization
SIMD CPU instructions
Parallel programming
Task Parallel Library
Parallel LINQ
Parallel benchmarking
Parallel programming limitations
Multithreading and concurrency
Locking
Practices to avoid
Reflection
Regular expressions
String concatenation in tight loops
Dynamic typing
Synchronous operations
Exceptions
Summary
Learning Caching and Message Queuing
Why caching is hard
Web caching
Caching background
HTTP headers
Cache busting
Service workers
Service worker example
Web and proxy servers
IIS
Varnish
Working with a content delivery network
When not to cache
Application layer caching
Redis
Database result set caching
Message queuing
Coffee shop analogy
Message queuing styles
Common messaging patterns
Unicast
Pub/sub
RabbitMQ
Queuing frameworks and libraries
Summary
The Downsides of Performance-Enhancing Tools
Managing complexity
Understanding complexity
Complexity reduction
Frameworks
Architecture
Monolith versus microservices
Architecture comparison
Refactoring
A culture of high performance
A blameless culture
Intellectual dishonesty
Slow down to go faster
From the ground up
Shared values
The price of performance
Distributed debugging
Logging
Error logging
Application Insights
Integrated logging
Centralized logging
Statistics
Managing stale caches
Summary
Monitoring Performance Regressions
Profiling and measurement
Testing
Automated testing
Continuous integration
Slow testing
Fixing performance regressions
Load testing
Realism
Realistic environments
Realistic workloads
Feature switching
Experimenting for science
A/B testing
User interface testing
Web UI testing tools
Automating UI performance tests
Staying alert
DevOps
DevOps tooling
Provisioning
Monitoring
Hosting
Summary
The Way Ahead
Reviewing what we learned
Further reading
Going native
Processor architecture
Hardware is hard
Machine learning
Big data and MapReduce
Orleans
Custom transports
Advanced hashing
Library and framework support
The future
Summary
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜