Opis ebooka: Efficient Go
With technological advancements, fast markets, and higher complexity of systems, software engineers tend to skip the uncomfortable topic of software efficiency. However, tactical, observability-driven performance optimizations are vital for every product to save money and ensure business success.
With this book, any engineer can learn how to approach software efficiency effectively, professionally, and without stress. Author Bartłomiej Płotka provides the tools and knowledge required to make your systems faster and less resource-hungry. Efficient Go guides you in achieving better day-to-day efficiency using Go. In addition, most content is language-agnostic, allowing you to bring small but effective habits to your programming or product management cycles.
This book shows you how to:
- Clarify and negotiate efficiency goals
- Optimize efficiency on various levels
- Use common resources like CPU and memory effectively
- Assess efficiency using observability signals like metrics, logging, tracing, and (continuous) profiling via open source projects like Prometheus, Jaeger, and Parca
- Apply tools like
go test
,pprof
,benchstat
, andk6
to create reliable micro and macro benchmarks - Efficiently use Go and its features like slices, generics, goroutines, allocation semantics, garbage collection, and more!
Wybrane bestsellery
-
Ta książka pomoże Ci się przygotować do pracy na stanowisku testera oprogramowania, a także zapewni wsparcie podczas wykonywania nowych zadań. Znajdziesz tu dokładne omówienie podstaw testowania, jego różnych rodzajów i poziomów w odniesieniu do zastosowania na różnych etapach pracy nad projektem...
Tester samouk. Praktyczny przewodnik po testowaniu oprogramowania na bazie gotowego projektu Tester samouk. Praktyczny przewodnik po testowaniu oprogramowania na bazie gotowego projektu
(35.40 zł najniższa cena z 30 dni)41.30 zł
59.00 zł(-30%) -
Firmy z branży IT prześcigają się w tworzeniu rozwiązań zwiększających wydajność pracy, jak również podnoszących poziom specjalizacji pracowników w określonych dziedzinach. Od kilku już lat pozycja full stack developera, który wykonywał wszystkie prace programistyczne, jest wielką rzadkością. Obe...
Postman i SQL. Kurs video. Metody testowania REST API i przeszukiwania baz danych Postman i SQL. Kurs video. Metody testowania REST API i przeszukiwania baz danych
(39.90 zł najniższa cena z 30 dni)63.60 zł
159.00 zł(-60%) -
Testowanie oprogramowania to jedna z najdynamiczniej rozwijających się dziedzin inżynierii oprogramowania. Zarobki doświadczonych testerów są porównywalne z wynagrodzeniem, jakie otrzymują dobrzy programiści. Aby rozpocząć karierę w tym zawodzie, trzeba się legitymować odpowiednimi umiejętnościam...
Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II
(65.40 zł najniższa cena z 30 dni)76.30 zł
109.00 zł(-30%) -
Właściwe wymagania to nie tylko kwestia ich dokumentacji, ale też przede wszystkim kwestia odpowiedniego ich pozyskania i walidacji. Dobrej jakości wymagania zmniejszają ryzyko produktowe i projektowe, pozwalają tworzyć systemy, które realnie spełniają potrzeby interesariuszy i umożliwiają im osi...
Inżynieria wymagań. Kurs video. Modelowanie wymagań i rozwiązań w projektach informatycznych Inżynieria wymagań. Kurs video. Modelowanie wymagań i rozwiązań w projektach informatycznych
(39.90 zł najniższa cena z 30 dni)76.05 zł
169.00 zł(-55%) -
Ten szczegółowy przewodnik pozwoli Ci na błyskawiczne zapoznanie się z .NET MAUI i sprawne rozpoczęcie pisania aplikacji za pomocą tej technologii. Zaprezentowano w nim filozofię działania .NET MAUI, jak również przebieg prac nad tworzeniem kompletnej aplikacji wieloplatformowej dla systemów: And...
Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
Jeśli zapytać aktywnych specjalistów branży IT o najpopularniejszy obecnie język programowania, większość z nich odpowie bez wahania: Python. Kto zatem rozważa rozpoczęcie kariery jako specjalista DevOps albo jako administrator systemów, zdecydowanie powinien zacząć naukę od opanowa...
Python dla administratorów. Kurs video. Od podstaw do automatyzacji pracy w świecie DevOps Python dla administratorów. Kurs video. Od podstaw do automatyzacji pracy w świecie DevOps
(39.90 zł najniższa cena z 30 dni)62.64 zł
179.00 zł(-65%) -
Testowanie manualne polega na uruchamianiu przypadków testowych ręcznie. Dla powodzenia projektu istotne jest rozpoczęcie testów na jak najwcześniejszym etapie pracy. W ten sposób zespół uzyskuje kontrolę nad błędami w kodzie i na bieżąco sprawdza, czy oprogramowanie spełnia określone w dokumenta...
Tester manualny. Kurs video. Testowanie wspierane narzędziami Tester manualny. Kurs video. Testowanie wspierane narzędziami
(39.90 zł najniższa cena z 30 dni)74.50 zł
149.00 zł(-50%) -
Czy wiesz, czym się zajmuje programista? To ktoś, kto, używając swojego umysłu i odpowiedniego języka programowania, rozwiązuje rozmaite problemy. Programista to taki współczesny superbohater. Przychodzi, siada do komputera, szybko przebiega palcami po klawiaturze i proszę ― działa. Oczywiś...
Python dla nastolatków. Projekty graficzne z Python Turtle Python dla nastolatków. Projekty graficzne z Python Turtle
(23.94 zł najniższa cena z 30 dni)27.93 zł
39.90 zł(-30%) -
Naglący termin, niedoczas, permanentne opóźnienie - oto najwierniejsi towarzysze i zarazem najwięksi wrogowie kierownika projektu. Nawet certyfikowani project managerowie, ludzie z ogromną wiedzą i nie mniejszym doświadczeniem, raz po raz znajdują się w sytuacji, w której potrzeba naprawdę wielki...(35.40 zł najniższa cena z 30 dni)
41.30 zł
59.00 zł(-30%) -
Przestępcy, co raz częściej korzystają ze złośliwego oprogramowania (exploity, wirusy, rootkity itp.) w celu oszukania nieświadomego użytkownika, przeprowadzenia ataku typu odmowa usługi lub włamania się do jakiegoś systemu i wykradzenia informacji. Działanie oprogramowania tego typu można w pełn...
Inżynieria odwrotna w praktyce. Narzędzia i techniki Inżynieria odwrotna w praktyce. Narzędzia i techniki
Bruce Dang, Alexandre Gazet, Elias Bachaalany, Sébastien Josse
(24.90 zł najniższa cena z 30 dni)34.50 zł
69.00 zł(-50%)
Ebooka "Efficient Go" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Efficient Go" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Efficient Go" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-10-981-0566-2, 9781098105662
- Data wydania ebooka:
- 2022-11-09 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 7.7MB
- Rozmiar pliku Mobi:
- 22.5MB
Spis treści ebooka
- Preface
- Why I Wrote This Book
- How I Gathered This Knowledge
- Who This Book Is For
- How This Book Is Organized
- Conventions Used in This Book
- Using Code Examples
- Acknowledgments
- Feedback Is Welcome!
- OReilly Online Learning
- How to Contact Us
- 1. Software Efficiency Matters
- Behind Performance
- Common Efficiency Misconceptions
- Optimized Code Is Not Readable
- Code after optimization can be more readable
- Readability now versus past
- Optimized Code Is Not Readable
- You Arent Going to Need It
- Hardware Is Getting Faster and Cheaper
- Software expands to fill the available memory
- Software gets slower more rapidly than hardware becomes faster
- Technological limits
- Faster execution is more energy efficient
- We Can Scale Horizontally Instead
- Time to Market Is More Important
- The Key to Pragmatic Code Performance
- Summary
- 2. Efficient Introduction to Go
- Basics You Should Know About Go
- Imperative, Compiled, and Statically Typed Language
- Designed to Improve Serious Codebases
- Governed by Google, Yet Open Source
- Simplicity, Safety, and Readability Are Paramount
- Packaging and Modules
- Dependencies Transparency by Default
- Consistent Tooling
- Single Way of Handling Errors
- Strong Ecosystem
- Unused Import or Variable Causes Build Error
- Unit Testing and Table Tests
- Basics You Should Know About Go
- Advanced Language Elements
- Code Documentation as a First Citizen
- Backward Compatibility and Portability
- Go Runtime
- Object-Oriented Programming
- Generics
- Is Go Fast?
- Summary
- 3. Conquering Efficiency
- Beyond Waste, Optimization Is a Zero-Sum Game
- Reasonable Optimizations
- Deliberate Optimizations
- Beyond Waste, Optimization Is a Zero-Sum Game
- Optimization Challenges
- Understand Your Goals
- Efficiency Requirements Should Be Formalized
- Resource-Aware Efficiency Requirements
- Acquiring and Assessing Efficiency Goals
- Example of Defining RAER
- Got an Efficiency Problem? Keep Calm!
- Optimization Design Levels
- Efficiency-Aware Development Flow
- Functionality Phase
- 1. Test functionality first
- 2. Do we pass the functional tests?
- 3. If the tests fail, we have to fix, implement, or design the missing parts
- Functionality Phase
- Efficiency Phase
- 4. Efficiency assessment
- 5. Are we within RAERs?
- 6. Find the main bottleneck
- 7. Choice of level
- 8. Optimize!
- 9. Release and enjoy!
- Summary
- 4. How Go Uses the CPU Resource (or Two)
- CPU in a Modern Computer Architecture
- Assembly
- Understanding Go Compiler
- CPU and Memory Wall Problem
- Hierachical Cache System
- Pipelining and Out-of-Order Execution
- Hyper-Threading
- Schedulers
- Operating System Scheduler
- Go Runtime Scheduler
- When to Use Concurrency
- Summary
- 5. How Go Uses Memory Resource
- Memory Relevance
- Do We Have a Memory Problem?
- Physical Memory
- OS Memory Management
- Virtual Memory
- mmap Syscall
- OS Memory Mapping
- Go Memory Management
- Values, Pointers, and Memory Blocks
- Go Allocator
- Garbage Collection
- Summary
- 6. Efficiency Observability
- Observability
- Example: Instrumenting for Latency
- Logging
- Tracing
- Metrics
- Efficiency Metrics Semantics
- Latency
- CPU Usage
- Memory Usage
- runtime heap statistics
- OS memory pages statistics
- Summary
- 7. Data-Driven Efficiency Assessment
- Complexity Analysis
- Estimated Efficiency Complexity
- Asymptotic Complexity with Big O Notation
- Practical Applications
- If you know precise complexity, you dont need to measure to know expected resource requirements
- It tells us if there is any easy optimization to our code
- It helps us assess ideas for a better algorithm as an optimization
- It tells us where the bottleneck is and what part of the algorithm is critical
- Complexity Analysis
- The Art of Benchmarking
- Comparison to Functional Testing
- Benchmarks Lie
- Reliability of Experiments
- Human Errors
- Reproducing Production
- Performance Nondeterminism
- Benchmarking Levels
- Benchmarking in Production
- Macrobenchmarks
- Microbenchmarks
- What Level Should You Use?
- Summary
- 8. Benchmarking
- Microbenchmarks
- Go Benchmarks
- Understanding the Results
- Microbenchmarks
- Tips and Tricks for Microbenchmarking
- Too-High Variance
- Find Your Workflow
- Test Your Benchmark for Correctness!
- Sharing Benchmarks with the Team (and Your Future Self)
- Running Benchmarks for Different Inputs
- Microbenchmarks Versus Memory Management
- Compiler Optimizations Versus Benchmark
- Macrobenchmarks
- Basics
- Go e2e Framework
- Understanding Results and Observations
- Server-side latency
- CPU time
- Memory
- Common Macrobenchmarking Workflows
- Summary
- 9. Data-Driven Bottleneck Analysis
- Root Cause Analysis, but for Efficiency
- Profiling in Go
- pprof Format
- go tool pprof Reports
- Top
- Graph
- Flame Graph
- Peek, Source, and Disassemble
- Capturing the Profiling Signal
- Common Profile Instrumentation
- Heap
- Goroutine
- CPU
- Off-CPU Time
- Tips and Tricks
- Sharing Profiles
- Continuous Profiling
- Comparing and Aggregating Profiles
- Summary
- 10. Optimization Examples
- Sum Examples
- Optimizing Latency
- Optimizing bytes.Split
- Optimizing runtime.slicebytetostring
- Optimizing strconv.Parse
- Optimizing Memory Usage
- Moving to Streaming Algorithm
- Optimizing bufio.Scanner
- Optimizing Latency Using Concurrency
- A Naive Concurrency
- A Worker Approach with Distribution
- A Worker Approach Without Coordination (Sharding)
- A Streamed, Sharded Worker Approach
- Bonus: Thinking Out of the Box
- Summary
- 11. Optimization Patterns
- Common Patterns
- Do Less Work
- Trading Functionality for Efficiency
- Trading Space for Time
- Trading Time for Space
- Common Patterns
- The Three Rs Optimization Method
- Reduce Allocations
- Reuse Memory
- Recycle
- Dont Leak Resources
- Control the Lifecycle of Your Goroutines
- Reliably Close Things
- Exhaust Things
- Pre-Allocate If You Can
- Overusing Memory with Arrays
- Memory Reuse and Pooling
- Summary
- Next Steps
- A. Latencies for Napkin Math Calculations
- Index
O'Reilly Media - inne książki
-
Software as a service (SaaS) is on the path to becoming the de facto model for building, delivering, and operating software solutions. Adopting a multi-tenant SaaS model requires builders to take on a broad range of new architecture, implementation, and operational challenges. How data is partiti...(237.15 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Great engineers don't necessarily make great leaders—at least, not without a lot of work. Finding your path to becoming a strong leader is often fraught with challenges. It's not easy to figure out how to be strategic, successful, and considerate while also being firm. Whether you're on the...(118.15 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
Data science happens in code. The ability to write reproducible, robust, scaleable code is key to a data science project's success—and is absolutely essential for those working with production code. This practical book bridges the gap between data science and software engineering,and clearl...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
With the massive adoption of microservices, operators and developers face far more complexity in their applications today. Service meshes can help you manage this problem by providing a unified control plane to secure, manage, and monitor your entire network. This practical guide shows you how th...(194.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Get practical advice on how to leverage AI development tools for all stages of code creation, including requirements, planning, design, coding, debugging, testing, and documentation. With this book, beginners and experienced developers alike will learn how to use a wide range of tools, from gener...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Rust's popularity is growing, due in part to features like memory safety, type safety, and thread safety. But these same elements can also make learning Rust a challenge, even for experienced programmers. This practical guide helps you make the transition to writing idiomatic Rust—while als...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Advance your Power BI skills by adding AI to your repertoire at a practice level. With this practical book, business-oriented software engineers and developers will learn the terminologies, practices, and strategy necessary to successfully incorporate AI into your business intelligence estate. Je...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Microservices can be a very effective approach for delivering value to your organization and to your customers. If you get them right, microservices help you to move fast by making changes to small parts of your system hundreds of times a day. But if you get them wrong, microservices will just ma...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
JavaScript gives web developers great power to create rich interactive browser experiences, and much of that power is provided by the browser itself. Modern web APIs enable web-based applications to come to life like never before, supporting actions that once required browser plug-ins. Some are s...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
How will software development and operations have to change to meet the sustainability and green needs of the planet? And what does that imply for development organizations? In this eye-opening book, sustainable software advocates Anne Currie, Sarah Hsu, and Sara Bergman provide a unique overview...(169.14 zł najniższa cena z 30 dni)
177.65 zł
209.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Efficient Go Bartlomiej Plotka (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.