Large Problems, Small Machines (eBook)
272 Seiten
Elsevier Science (Verlag)
978-1-4832-7132-3 (ISBN)
Steve Heller has been a professional programmer for about 25 years, and is the President of Chrysalis Software Corporation, a consulting firm specializing in high-performance software, and practical, down-to-earth instructional materials. He is the author of two excellent books, Efficient C/C++ Programming and Who's Afraid of C++?.
Large Problems, Small Machines: Transforming Your Programs with Advanced Algorithms describes a practical, real-world approach to program optimization based on advanced algorithms. Topics covered range from how to save storage using a restricted character set and how to speed up access to records by employing hash coding (or "e;scatter storage"e;) and caching. A selective mailing list system is used to illustrate rapid access to and rearrangement of information selected by criteria specified at run-time. Comprised of six chapters, this book begins by discussing factors to consider when deciding whether a program needs optimization. In the next chapter, a supermarket price lookup system is used to illustrate how to save storage by using a restricted character set and how to speed up access to records with the aid of hash coding and caching. Attention is paid to rapid retrieval of prices. A selective mailing list system is then used to illustrate rapid access to and rearrangement of information selected by criteria specified at run-time. The book also considers the Huffman coding and arithmetic coding methods of data compression before concluding with a review of the characteristics of the algorithms encountered in previous chapters, as well as the future of the art of optimization. This monograph will be a useful resource for practicing computer programmers and those who intend to be working programmers.
Front Cover
1
Large Problems, Small Machines: Transforming Your Programs with
4
Copyright Page
5
Table of Contents 6
Dedication 3
Figures 12
Foreword 16
Preface 18
Chapter 1. Let's Cet Small (and Fast): Introduction to Optimization 20
Deciding Whether to Optimize 20
Why Optimization Is Necessary 21
Why Optimization Is Often Neglected 21
Considering a Hardware Solution 22
Categories of Optimization 23
Finding the Critical Resource 23
Determining How Much Optimization Is Needed 24
A Real-life Example 24
Summary 26
Chapter 2. Hash, Cache, and Crunch: A Supermarket Price Lookup System 42
Introduction 42
A Possible Solution 42
Some Random Musings 44
Starting at the Beginning 44
Divide and Conquer 45
Unite and Rule 45
Knowing When to Stop 46
Handling Subfile Overflow 48
Some Drawbacks of Hashing 49
The Only Good Disk Access... 50
Heading for The Final Lookup 51
Saving Storage 52
The Code 52
Some User-defined Types 53
Preparing to Access The Price File 54
Making a Hash of Things 55
Searching the File 56
Wrapping Around at End-of-file 58
Summary 58
Problems 58
Chapttr 3. Strìps, Bits, and Sorts: A Maiting List System 88
Introduction 88
A First Approach 88
Starting the Optimization 90
The Code 98
Performance 103
Summary 105
Problems 105
Chapter 4. Cn U Rd The Okly? A Data Compression Utility 132
Introduction 132
Huffman Coding 132
Half a Bit Is Better Than One 137
Getting a Bit Excited 138
A Character Study 139
The Code 142
Finding the Bottlenecks 153
Some Assembly is Required 156
A Bunch of Real Characters 161
Summary 162
Problems 162
Chapter 5. Free at Last: A Customer Database Program with Variabie Length Records 188
Introduction 188
A Harmless Fixation 188
The Quantum File Access Method 190
The Itinerary 200
Let's Get Physical 200
A Logical Analysis 204
Taking it from the Top 219
Summary 220
Problems 220
Chapter 6. Mozart, No Would you Believe Gershwin?
Introduction 258
Summary of Characteristics 258
Some Thoughts on the Future 260
Goodbye for Now 261
Suggested Approaches to Problems 262
Ordering Instructions 266
Index 268
| Erscheint lt. Verlag | 10.5.2014 |
|---|---|
| Sprache | englisch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Software Entwicklung |
| Mathematik / Informatik ► Mathematik | |
| Technik | |
| ISBN-10 | 1-4832-7132-3 / 1483271323 |
| ISBN-13 | 978-1-4832-7132-3 / 9781483271323 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich