Writing High-Performance .NET Code

Writing High-Performance .NET Code

Author: Ben Watson

Publisher:

Published: 2014

Total Pages:

ISBN-13: 9780990583448

DOWNLOAD EBOOK

Do you want your .NET code to have the absolute best performance it can? This book demystifies the CLR, teaching you how and why to write code with optimum performance. Learn critical lessons from a person who helped design and build one of the largest high-performance .NET systems in the world.This book does not just teach you how the CLR works--it teaches you exactly what you need to do now to obtain the best performance today. It will expertly guide you through the nuts and bolts of extreme performance optimization in .NET, complete with in-depth examinations of CLR functionality, free tool recommendations and tutorials, useful anecdotes, and step-by-step guides to measure and improve performance.Among the topics you will learn are how to:- Choose what to measure and why- Use many amazing tools, freely available, to solve problems quickly- Understand the .NET garbage collector and its effect on your application- Use effective coding patterns that lead to optimal garbage collection performance- Diagnose common GC-related issues- Reduce costs of JITting- Use multiple threads sanely and effectively, avoiding synchronization problems- Know which .NET features and APIs to use and which to avoid- Use code generation to avoid performance problems- Measure everything and expose hidden performance issues- Instrument your program with performance counters and ETW events- Use the latest and greatest .NET features- Ensure your code can run on mobile devices without problems- Build a performance-minded team...and much more.


Writing High-Performance .NET Code, 2nd Edition

Writing High-Performance .NET Code, 2nd Edition

Author: Ben Watson

Publisher: Ben Watson

Published: 2018-04-16

Total Pages: 494

ISBN-13: 099058349X

DOWNLOAD EBOOK

Take performance to the next level!

This book does not just teach you how the CLR works---it teaches you exactly what you need to do now to obtain the best performance today. It will expertly guide you through the nuts and bolts of extreme performance optimization in .NET, complete with in-depth examinations of CLR functionality, free tool recommendations and tutorials, useful anecdotes, and step-by-step guides to measure and improve performance.

This second edition incorporates the advances and improvements in .NET over the last few years, as well as greatly expanded coverage of tools, more topics, more tutorials, more tips, and improvements throughout the entire book.

New in the 2nd Edition:

  • 50% increase in content!
  • New examples, code samples, and diagrams throughout entire book
  • More ways to analyze the heap and find memory problems
  • More tool coverage, including expanded usage of Visual Studio
  • More benchmarking
  • New GC configuration options
  • Code warmup techniques
  • New .NET features such as ref-returns, value tuples, SIMD, and more
  • More detailed analysis of LINQ
  • Tips for high-level feature areas such as ASP.NET, ADO.NET, and WPF

Also find expanded coverage and discover new tips and tricks for:

  • Profiling with multiple tools to quickly find problem areas
  • Detailed description of the garbage collector, how to optimize your code for it, and how to diagnose difficult memory-related issues
  • How to analyze JIT and diagnose warmup problems
  • Effective use of the Task Parallel Library to maximize throughput
  • Which .NET features and APIs to use and which to avoid
  • Instrument your program with performance counters and ETW events
  • Use the latest and greatest .NET features
  • Build a performance-minded team
  • ...and so much more


Hands-On High Performance with Go

Hands-On High Performance with Go

Author: Bob Strecansky

Publisher: Packt Publishing Ltd

Published: 2020-03-24

Total Pages: 387

ISBN-13: 178980177X

DOWNLOAD EBOOK

Proven methodologies and concurrency techniques that will help you write faster and better code with Go programming Key FeaturesExplore Go’s profiling tools to write faster programs by identifying and fixing bottlenecksAddress Go-specific performance issues such as memory allocation and garbage collectionDelve into the subtleties of concurrency and discover how to successfully implement it in everyday applicationsBook Description Go is an easy-to-write language that is popular among developers thanks to its features such as concurrency, portability, and ability to reduce complexity. This Golang book will teach you how to construct idiomatic Go code that is reusable and highly performant. Starting with an introduction to performance concepts, you’ll understand the ideology behind Go’s performance. You’ll then learn how to effectively implement Go data structures and algorithms along with exploring data manipulation and organization to write programs for scalable software. This book covers channels and goroutines for parallelism and concurrency to write high-performance code for distributed systems. As you advance, you’ll learn how to manage memory effectively. You’ll explore the compute unified device architecture (CUDA) application programming interface (API), use containers to build Go code, and work with the Go build cache for quicker compilation. You’ll also get to grips with profiling and tracing Go code for detecting bottlenecks in your system. Finally, you’ll evaluate clusters and job queues for performance optimization and monitor the application for performance regression. By the end of this Go programming book, you’ll be able to improve existing code and fulfill customer requirements by writing efficient programs. What you will learnOrganize and manipulate data effectively with clusters and job queuesExplore commonly applied Go data structures and algorithmsWrite anonymous functions in Go to build reusable appsProfile and trace Go apps to reduce bottlenecks and improve efficiencyDeploy, monitor, and iterate Go programs with a focus on performanceDive into memory management and CPU and GPU parallelism in GoWho this book is for This Golang book is a must for developers and professionals who have an intermediate-to-advanced understanding of Go programming, and are interested in improving their speed of code execution.


C# 7 and .NET Core 2.0 High Performance

C# 7 and .NET Core 2.0 High Performance

Author: Ovais Mehboob Ahmed Khan

Publisher: Packt Publishing Ltd

Published: 2018-04-25

Total Pages: 293

ISBN-13: 1788474600

DOWNLOAD EBOOK

Improve the speed of your code and optimize the performance of your apps Key Features Understand the common performance pitfalls and improve your application’s performance Get to grips with multi-threaded and asynchronous programming in C# Develop highly performant applications on .NET Core using microservice architecture Book Description While writing an application, performance is paramount. Performance tuning for realworld applications often involves activities geared toward fnding bottlenecks; however, this cannot solve the dreaded problem of slower code. If you want to improve the speed of your code and optimize an application's performance, then this book is for you. C# 7 and .NET Core 2.0 High Performance begins with an introduction to the new features of what?explaining how they help in improving an application's performance. Learn to identify the bottlenecks in writing programs and highlight common performance pitfalls, and learn strategies to detect and resolve these issues early. You will explore multithreading and asynchronous programming with .NET Core and learn the importance and effcient use of data structures. This is followed with memory management techniques and design guidelines to increase an application’s performance. Gradually, the book will show you the importance of microservices architecture for building highly performant applications and implementing resiliency and security in .NET Core. After reading this book, you will learn how to structure and build scalable, optimized, and robust applications in C#7 and .NET. What you will learn Measure application performance using BenchmarkDotNet Explore the techniques to write multithreaded applications Leverage TPL and PLinq libraries to perform asynchronous operations Get familiar with data structures to write optimized code Understand design techniques to increase your application’s performance Learn about memory management techniques in .NET Core Develop a containerized application based on microservices architecture Learn tools and techniques to monitor application performance Who this book is for This book is for .NET developers looking at improving the speed of their code or simply wanting to take their skills to the next level. Basic C# knowledge is assumed.


Pro .NET Memory Management

Pro .NET Memory Management

Author: Konrad Kokosa

Publisher: Apress

Published: 2018-11-12

Total Pages: 1091

ISBN-13: 1484240278

DOWNLOAD EBOOK

Understand .NET memory management internal workings, pitfalls, and techniques in order to effectively avoid a wide range of performance and scalability problems in your software. Despite automatic memory management in .NET, there are many advantages to be found in understanding how .NET memory works and how you can best write software that interacts with it efficiently and effectively. Pro .NET Memory Management is your comprehensive guide to writing better software by understanding and working with memory management in .NET. Thoroughly vetted by the .NET Team at Microsoft, this book contains 25 valuable troubleshooting scenarios designed to help diagnose challenging memory problems. Readers will also benefit from a multitude of .NET memory management “rules” to live by that introduce methods for writing memory-aware code and the means for avoiding common, destructive pitfalls. What You'll LearnUnderstand the theoretical underpinnings of automatic memory management Take a deep dive into every aspect of .NET memory management, including detailed coverage of garbage collection (GC) implementation, that would otherwise take years of experience to acquire Get practical advice on how this knowledge can be applied in real-world software development Use practical knowledge of tools related to .NET memory management to diagnose various memory-related issuesExplore various aspects of advanced memory management, including use of Span and Memory types Who This Book Is For .NET developers, solution architects, and performance engineers


Learning .NET High-performance Programming

Learning .NET High-performance Programming

Author: Antonio Esposito

Publisher: Packt Publishing Ltd

Published: 2015-06-30

Total Pages: 305

ISBN-13: 1785282638

DOWNLOAD EBOOK

This book will help you understand what "programming for performance" means, and use effective coding patterns and techniques to optimize your .NET applications. You will begin by understanding what "high performance coding" means, and the different performance concerns. You will see how CLR works and get an understanding of concepts such as memory management, garbage collection, and thread life cycles. You will proceed to learn about the theoretical and practical concepts of PLINQ programming. You will also see what Big Data is, and how to architect a Big Data solution to manipulate large datasets. Finally, you will learn how to launch and analyze a profile session and execute tests against a code block or application for performance analysis. By the end of this book, you will have a complete understanding of efficient programming using high-performance techniques, and will able to write highly optimized applications.


Code That Fits in Your Head

Code That Fits in Your Head

Author: Mark Seemann

Publisher: Addison-Wesley Professional

Published: 2021-11-02

Total Pages: 628

ISBN-13: 0137464355

DOWNLOAD EBOOK

How to Reduce Code Complexity and Develop Software More Sustainably "Mark Seemann is well known for explaining complex concepts clearly and thoroughly. In this book he condenses his wide-ranging software development experience into a set of practical, pragmatic techniques for writing sustainable and human-friendly code. This book will be a must-read for every programmer." -- Scott Wlaschin, author of Domain Modeling Made Functional Code That Fits in Your Head offers indispensable, practical advice for writing code at a sustainable pace and controlling the complexity that causes projects to spin out of control. Reflecting decades of experience helping software teams succeed, Mark Seemann guides you from zero (no code) to deployed features and shows how to maintain a good cruising speed as you add functionality, address cross-cutting concerns, troubleshoot, and optimize. You'll find valuable ideas, practices, and processes for key issues ranging from checklists to teamwork, encapsulation to decomposition, API design to unit testing. Seemann illuminates his insights with code examples drawn from a complete sample project. Written in C#, they're designed to be clear and useful to anyone who uses any object-oriented language including Java , C++, and Python. To facilitate deeper exploration, all code and extensive commit messages are available for download. Choose mindsets and processes that work, and escape bad metaphors that don't Use checklists to liberate yourself, improving outcomes with the skills you already have Get past “analysis paralysis” by creating and deploying a vertical slice of your application Counteract forces that lead to code rot and unnecessary complexity Master better techniques for changing code behavior Discover ways to solve code problems more quickly and effectively Think more productively about performance and security If you've ever suffered through bad projects or had to cope with unmaintainable legacy code, this guide will help you make things better next time and every time. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.


High Performance JavaScript

High Performance JavaScript

Author: Nicholas C. Zakas

Publisher: "O'Reilly Media, Inc."

Published: 2010-03-11

Total Pages: 234

ISBN-13: 1449388744

DOWNLOAD EBOOK

If you're like most developers, you rely heavily on JavaScript to build interactive and quick-responding web applications. The problem is that all of those lines of JavaScript code can slow down your apps. This book reveals techniques and strategies to help you eliminate performance bottlenecks during development. You'll learn how to improve execution time, downloading, interaction with the DOM, page life cycle, and more. Yahoo! frontend engineer Nicholas C. Zakas and five other JavaScript experts—Ross Harmes, Julien Lecomte, Steven Levithan, Stoyan Stefanov, and Matt Sweeney—demonstrate optimal ways to load code onto a page, and offer programming tips to help your JavaScript run as efficiently and quickly as possible. You'll learn the best practices to build and deploy your files to a production environment, and tools that can help you find problems once your site goes live. Identify problem code and use faster alternatives to accomplish the same task Improve scripts by learning how JavaScript stores and accesses data Implement JavaScript code so that it doesn't slow down interaction with the DOM Use optimization techniques to improve runtime performance Learn ways to ensure the UI is responsive at all times Achieve faster client-server communication Use a build system to minify files, and HTTP compression to deliver them to the browser


Pro .NET Performance

Pro .NET Performance

Author: Sasha Goldshtein

Publisher: Apress

Published: 2012-10-22

Total Pages: 360

ISBN-13: 1430244593

DOWNLOAD EBOOK

Maximizing the performance of your algorithms and applications is extremely important and can give you a competitive advantage, a lower cost of ownership, and happier users. Pro .NET Performance explains the internals of Windows, the CLR, and the physical hardware that affect the performance of your applications, and gives you the knowledge and tools to measure how your code performs in isolation from external factors. The book is full of C# code samples and tips to help you squeeze every bit of juice from your application—lower memory utilization, consistent CPU usage, and fewer I/O operations across the network and disk. Pro .NET Performance will change the way you think about .NET application development. Guides you through performance measurement with a variety of profilers and other tools Explains how OS and CLR internals affect your application’s performance in unexpected ways Provides you with tips and real-life case studies for improving application performance


Metaprogramming in .NET

Metaprogramming in .NET

Author: Jason Bock

Publisher: Simon and Schuster

Published: 2012-12-30

Total Pages: 517

ISBN-13: 1638351813

DOWNLOAD EBOOK

Summary Metaprogramming in .NET is designed to help readers understand the basic concepts, advantages, and potential pitfalls of metaprogramming. It introduces core concepts in clear, easy-to-follow language and then it takes you on a deep dive into the tools and techniques you'll use to implement them in your .NET code. You'll explore plenty of real-world examples that reinforce key concepts. When you finish, you'll be able to build high-performance, metaprogramming-enabled software with confidence. About the Technology When you write programs that create or modify other programs, you are metaprogramming. In .NET, you can use reflection as well as newer concepts like code generation and scriptable software. The emerging Roslyn project exposes the .NET compiler as an interactive API, allowing compile-time code analysis and just-in-time refactoring. About this Book Metaprogramming in .NET is a practical introduction to the use of metaprogramming to improve the performance and maintainability of your code. This book avoids abstract theory and instead teaches you solid practices you'll find useful immediately. It introduces core concepts like code generation and application composition in clear, easy-to-follow language. Written for readers comfortable with C# and the .NET framework—no prior experience with metaprogramming is required. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Metaprogramming concepts in plain language Creating scriptable software Code generation techniques The Dynamic Language Runtime About the Authors Kevin Hazzard is a Microsoft MVP, consultant, teacher, and developer community leader in the mid-Atlantic USA. Jason Bock is an author, Microsoft MVP, and the leader of the Twin Cities Code Camp. "An excellent way to start fully using the power of metaprogramming."—From the Foreword by Rockford Lhotka, Creator of the CSLA .NET Framework Table of Contents PART 1 DEMYSTIFYING METAPROGRAMMING Metaprogramming concepts Exploring code and metadata with reflection PART 2 TECHNIQUES FOR GENERATING CODE The Text Template Transformation Toolkit (T4) Generating code with the CodeDOM Generating code with Reflection.Emit Generating code with expressions Generating code with IL rewriting PART 3 LANGUAGES AND TOOLS The Dynamic Language Runtime Languages and tools Managing the .NET Compiler