Hands-on high performance with Go : boost and optimize the performance of your Golang applications at scale with resilience / Bob Strecansky.
2020
QA76.73.G63
Formats
Format | |
---|---|
BibTeX | |
MARCXML | |
TextMARC | |
MARC | |
DublinCore | |
EndNote | |
NLM | |
RefWorks | |
RIS |
Linked e-resources
Details
Title
Hands-on high performance with Go : boost and optimize the performance of your Golang applications at scale with resilience / Bob Strecansky.
Author
ISBN
9781789801774
178980177X
9781789805789
178980177X
9781789805789
Published
Birmingham, UK : Packt Publishing, 2020.
Language
English
Description
1 online resource (1 volume) : illustrations
Call Number
QA76.73.G63
System Control No.
(OCoLC)1191843941
Summary
Hands-On High Performance with Go is a complete resource with proven methodologies and techniques to help you diagnose and fix performance problems in your Go applications. With this book, you will be confident enough to solve the performance-related concerns in your enterprise applications.
Bibliography, etc. Note
Includes bibliographical references.
Formatted Contents Note
Cover
Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Table of Contents
Preface
Section 1: Learning about Performance in Go
Chapter 1: Introduction to Performance in Go
Technical requirements
Understanding performance in computer science
A brief note on Big O notation
Methods to gauge long term performance
Optimization strategies overview
Optimization levels
A brief history of Go
The Go standard library
Go toolset
Benchmarking overview
The ideology behind Go performance
Goroutines
performance from the start
Channels
a typed conduit
C-comparable performance
Large-scale distributed systems
Summary
Chapter 2: Data Structures and Algorithms
Understanding benchmarking
Benchmark execution
Real-world benchmarking
Introducing Big O notation
Practical Big O notation example
Data structure operations and time complexity
O(1)
constant time
O(log n)
logarithmic time
O(n)
linear time
O(n log n)
quasilinear time
O(n2)
quadratic time
O(2n)
exponential time
Understanding sort algorithms
Insertion sort
Heap sort
Merge sort
Quick sort
Understanding search algorithms
Linear search
Binary search
Exploring trees
Binary trees
Doubly linked list
Exploring queues
Common queuing functions
Common queuing patterns
Summary
Chapter 3: Understanding Concurrency
Understanding closures
Anonymous functions
Anonymous functions with respect to closures
Closures for nesting and deferring work
HTTP handlers with closures
Exploring goroutines
The Go scheduler
Go scheduler goroutine internals
The M struct
The P struct
The G struct
Goroutines in action
Introducing channels
Channel internals
Buffered channels
Ranges over channels
Unbuffered channels
Selects
Introducing semaphores
Understanding WaitGroups
Iterators and the process of iteration
Briefing on generators
Summary
Chapter 4: STL Algorithm Equivalents in Go
Understanding algorithms in the STL
Sort
Reverse
Min element and max element
Binary search
Understanding containers
Sequence containers
Array
Vector
Deque
List
Forward list
Container adapters
Queue
Priority queue
Stack
Associative containers
Set
Multiset
Map
Multimap
Understanding function objects
Functors
Iterators
Internal iterators
External iterators
Generators
Implicit Iterators
Summary
Chapter 5: Matrix and Vector Computation in Go
Introducing Gonum and the Sparse library
Introducing BLAS
Introducing vectors
Vector computations
Introducing matrices
Matrix operations
Matrix addition
A practical example (matrix subtraction)
Scalar multiplication
Scalar multiplication practical example
Matrix multiplication
Matrix multiplication practical example
Matrix transposition
Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Table of Contents
Preface
Section 1: Learning about Performance in Go
Chapter 1: Introduction to Performance in Go
Technical requirements
Understanding performance in computer science
A brief note on Big O notation
Methods to gauge long term performance
Optimization strategies overview
Optimization levels
A brief history of Go
The Go standard library
Go toolset
Benchmarking overview
The ideology behind Go performance
Goroutines
performance from the start
Channels
a typed conduit
C-comparable performance
Large-scale distributed systems
Summary
Chapter 2: Data Structures and Algorithms
Understanding benchmarking
Benchmark execution
Real-world benchmarking
Introducing Big O notation
Practical Big O notation example
Data structure operations and time complexity
O(1)
constant time
O(log n)
logarithmic time
O(n)
linear time
O(n log n)
quasilinear time
O(n2)
quadratic time
O(2n)
exponential time
Understanding sort algorithms
Insertion sort
Heap sort
Merge sort
Quick sort
Understanding search algorithms
Linear search
Binary search
Exploring trees
Binary trees
Doubly linked list
Exploring queues
Common queuing functions
Common queuing patterns
Summary
Chapter 3: Understanding Concurrency
Understanding closures
Anonymous functions
Anonymous functions with respect to closures
Closures for nesting and deferring work
HTTP handlers with closures
Exploring goroutines
The Go scheduler
Go scheduler goroutine internals
The M struct
The P struct
The G struct
Goroutines in action
Introducing channels
Channel internals
Buffered channels
Ranges over channels
Unbuffered channels
Selects
Introducing semaphores
Understanding WaitGroups
Iterators and the process of iteration
Briefing on generators
Summary
Chapter 4: STL Algorithm Equivalents in Go
Understanding algorithms in the STL
Sort
Reverse
Min element and max element
Binary search
Understanding containers
Sequence containers
Array
Vector
Deque
List
Forward list
Container adapters
Queue
Priority queue
Stack
Associative containers
Set
Multiset
Map
Multimap
Understanding function objects
Functors
Iterators
Internal iterators
External iterators
Generators
Implicit Iterators
Summary
Chapter 5: Matrix and Vector Computation in Go
Introducing Gonum and the Sparse library
Introducing BLAS
Introducing vectors
Vector computations
Introducing matrices
Matrix operations
Matrix addition
A practical example (matrix subtraction)
Scalar multiplication
Scalar multiplication practical example
Matrix multiplication
Matrix multiplication practical example
Matrix transposition
Source of Description
Online resource; title from title page (Safari, viewed August 28, 2020).
Available in Other Form
Print version: Strecansky, Bob. Hands-On High Performance with Go : Boost and Optimize the Performance of Your Golang Applications at Scale with Resilience. Birmingham : Packt Publishing, Limited, ©2020
Linked Resources
Record Appears in