没有合适的资源?快使用搜索试试~ 我知道了~
首页Michael Abrash_'s Graphics Programming Black Book
Michael Abrash_'s Graphics Programming Black Book
需积分: 9 13 下载量 89 浏览量
更新于2023-03-16
评论
收藏 8.77MB PDF 举报
Michael Abrash_'s Graphics Programming Black Book 图形编程中的经典之作。
资源详情
资源评论
资源推荐
Brief Full
Advanced
Search
Search Tips
To access the contents, click the chapter and section titles.
Michael Abrash's Graphics Programming Black Book, Special Edition
(Publisher: The Coriolis Group)
Author(s): Michael Abrash
ISBN: 1576101746
Publication Date: 07/01/97
Search this book:
Introduction
Foreword
About the Author
Part I
Chapter 1—The Best Optimizer Is between
Your Ears
The Human Element of Code Optimization
Understanding High Performance
When Fast Isn’t Fast
Rules for Building High-Performance Code
Know Where You’re Going
Make a Big Map
Make Lots of Little Maps
Know the Territory
Know When It Matters
Always Consider the Alternatives
Know How to Turn On the Juice
Where We’ve Been, What We’ve Seen
Where We’re Going
Go!
Keyword
-----------
Go!
Chapter 2—A World Apart
The Unique Nature of Assembly Language
Optimization
Instructions: The Individual versus the Collective
Assembly Is Fundamentally Different
Transformation Inefficiencies
Self-Reliance
Knowledge
The Flexible Mind
Where to Begin?
Chapter 3—Assume Nothing
Understanding and Using the Zen Timer
The Costs of Ignorance
The Zen Timer
The Zen Timer Is a Means, Not an End
Starting the Zen Timer
Time and the PC
Stopping the Zen Timer
Reporting Timing Results
Notes on the Zen Timer
A Sample Use of the Zen Timer
The Long-Period Zen Timer
Stopping the Clock
Example Use of the Long-Period Zen Timer
Using the Zen Timer from C
Watch Out for Optimizing Assemblers!
Further Reading
Armed with the Zen Timer, Onward and Upward
Chapter 4—In the Lair of the Cycle-Eaters
How the PC Hardware Devours Code Performance
Cycle-Eaters
The Nature of Cycle-Eaters
The 8088’s Ancestral Cycle-Eaters
The 8-Bit Bus Cycle-Eater
The Impact of the 8-Bit Bus Cycle-Eater
What to Do about the 8-Bit Bus Cycle-Eater?
The Prefetch Queue Cycle-Eater
Official Execution Times Are Only Part of the
Story
There Is No Such Beast as a True Instruction
Execution Time
Approximating Overall Execution Times
What to Do about the Prefetch Queue
Cycle-Eater?
Holding Up the 8088
Dynamic RAM Refresh: The Invisible Hand
How DRAM Refresh Works in the PC
The Impact of DRAM Refresh
What to Do About the DRAM Refresh
Cycle-Eater?
Wait States
The Display Adapter Cycle-Eater
The Impact of the Display Adapter Cycle-Eater
What to Do about the Display Adapter
Cycle-Eater?
Cycle-Eaters: A Summary
What Does It All Mean?
Chapter 5—Crossing the Border
Searching Files with Restartable Blocks
Searching for Text
Avoiding the String Trap
Brute-Force Techniques
Using memchr()
Making a Search Restartable
Interpreting Where the Cycles Go
Knowing When Assembly Is Pointless
Always Look Where Execution Is Going
Chapter 6—Looking Past Face Value
How Machine Instructions May Do More Than You
Think
Memory Addressing and Arithmetic
Math via Memory Addressing
The Wonders of LEA on the 386
Multiplication with LEA Using Non-Powers of Two
Chapter 7—Local Optimization
Optimizing Halfway between Algorithms and Cycle
Counting
When LOOP Is a Bad Idea
The Lessons of LOOP and JCXZ
Avoiding LOOPS of Any Stripe
Local Optimization
Unrolling Loops
Rotating and Shifting with Tables
NOT Flips Bits—Not Flags
Incrementing with and without Carry
Chapter 8—Speeding Up C with Assembly
Language
Jumping Languages When You Know It’ll Help
Billy, Don’t Be a Compiler
Don’t Call Your Functions on Me, Baby
Stack Frames Slow So Much
Torn Between Two Segments
Why Speeding Up Is Hard to Do
Taking It to the Limit
A C-to-Assembly Case Study
Chapter 9—Hints My Readers Gave Me
Optimization Odds and Ends from the Field
Another Look at LEA
The Kennedy Portfolio
Speeding Up Multiplication
Optimizing Optimized Searching
Short Sorts
Full 32-Bit Division
Sweet Spot Revisited
Hard-Core Cycle Counting
Hardwired Far Jumps
Setting 32-Bit Registers: Time versus Space
Chapter 10—Patient Coding, Faster Code
How Working Quickly Can Bring Execution to a Crawl
The Case for Delayed Gratification
The Brute-Force Syndrome
Wasted Breakthroughs
Recursion
Patient Optimization
Chapter 11—Pushing the 286 and 386
New Registers, New Instructions, New Timings, New
Complications
Family Matters
Crossing the Gulf to the 286 and the 386
In the Lair of the Cycle-Eaters, Part II
System Wait States
Data Alignment
Code Alignment
Alignment and the 386
Alignment and the Stack
The DRAM Refresh Cycle-Eater: Still an
Act of God
The Display Adapter Cycle-Eater
New Instructions and Features: The 286
New Instructions and Features: The 386
Optimization Rules: The More Things
Change...
Detailed Optimization
POPF and the 286
Chapter 12—Pushing the 486
It’s Not Just a Bigger 386
Enter the 486
Rules to Optimize By
The Hazards of Indexed Addressing
Calculate Memory Pointers Ahead of Time
Caveat Programmor
剩余1449页未读,继续阅读
onepole
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0