Computer performance

performanceprocessing powercomputing powerpowerBrainiac techniquescomputational performancecomputer powercomputer's performancecomputing efficiencyCPU core performance
In computing, the performance of a computer system refers to the amount of useful work it accomplishes (i.e. instructions it executes).wikipedia
195 Related Articles

Arnold Allen

Whilst the above definition relates to a scientific, technical approach, the following definition given by Arnold Allen would be useful for a non-technical audience:
Arnold Oral Allen was an American instructor, public speaker, and writer who worked at IBM and Hewlett-Packard, and specialized in the analysis and mathematical modelling of computer performance.

Megahertz myth

easily manipulable benchmarkever-increasing clock speeds
However, sometimes pushing one type of performance to an extreme leads to a CPU with worse overall performance, because other important aspects were sacrificed to get one impressive-looking number, for example, the chip's clock rate (see the megahertz myth).
A benchmark is a more thorough way of measuring and comparing computer performance.

Instruction path length

CPU path length
Computer performance metrics (things to measure) include availability, response time, channel capacity, latency, completion time, service time, bandwidth, throughput, relative efficiency, scalability, performance per watt, compression ratio, instruction path length and speed up. N is the number of instructions actually executed (the instruction path length). The code density of the instruction set strongly affects N. The value of N can either be determined exactly by using an instruction set simulator (if available) or by estimation—itself based partly on estimated or actual frequency distribution of input variables and by examining generated machine code from an HLL compiler. It cannot be determined from the number of lines of HLL source code. N is not affected by other processes running on the same processor. The significant point here is that hardware normally does not keep track of (or at least make easily available) a value of N for executed programs. The value can therefore only be accurately determined by instruction set simulation, which is rarely practiced.
In computer performance, the instruction path length is the number of machine code instructions required to execute a section of a computer program.

Parallel computing

parallelparallel processingparallelism
System designers building parallel computers, such as Google's hardware, pick CPUs based on their speed per watt of power, because the cost of powering the CPU outweighs the cost of the CPU itself.
Frequency scaling was the dominant reason for improvements in computer performance from the mid-1980s until 2004.

Benchmark (computing)

benchmarkbenchmarksbenchmarking
Because there are so many programs to test a CPU on all aspects of performance, benchmarks were developed.
Many benchmarks focus entirely on the speed of computational performance, neglecting other important features of a computer system, such as:

Instruction set architecture

instruction setinstructionsinstruction
N is the number of instructions actually executed (the instruction path length). The code density of the instruction set strongly affects N. The value of N can either be determined exactly by using an instruction set simulator (if available) or by estimation—itself based partly on estimated or actual frequency distribution of input variables and by examining generated machine code from an HLL compiler. It cannot be determined from the number of lines of HLL source code. N is not affected by other processes running on the same processor. The significant point here is that hardware normally does not keep track of (or at least make easily available) a value of N for executed programs. The value can therefore only be accurately determined by instruction set simulation, which is rarely practiced.
An ISA permits multiple implementations that may vary in performance, physical size, and monetary cost (among other things); because the ISA serves as the interface between software and hardware.

Branch predictor

branch predictionbranch prediction unitdynamic branch prediction
Sometimes a designer focuses on improving performance by making significant improvements in CPI (with techniques such as out-of-order execution, superscalar CPUs, larger caches, caches with improved hit rates, improved branch prediction, speculative execution, etc.), while (hopefully) not sacrificing too much clock frequency—leading to a brainiac CPU design.
Branch predictors play a critical role in achieving high effective performance in many modern pipelined microprocessor architectures such as x86.

Algorithmic efficiency

efficiencyefficientcomputational cost
Algorithmic efficiency
Computer manufacturers frequently bring out new models, often with higher performance.

Application-specific integrated circuit

ASICASICsapplication specific integrated circuit
Because the units of throughput are the reciprocal of the unit for propagation delay, which is 'seconds per message' or 'seconds per output', throughput can be used to relate a computational device performing a dedicated function such as an ASIC or embedded processor to a communications channel, simplifying system analysis.
Gate-array ASICs are always a compromise between rapid design and performance as mapping a given design onto what a manufacturer held as a stock wafer never gives 100% circuit utilization.

Giga-updates per second

RandomAccess
RAM update rate
Giga-updates per second (GUPS) is a measure of computer performance.

Hardware acceleration

hardware-acceleratedacceleratorshardware accelerator
Hardware acceleration
Hardware acceleration is advantageous for performance, and practical when the functions are fixed so updates are not as needed as in software solutions.

Program optimization

optimizationoptimizedoptimizations
The most common use of profiling information is to aid program optimization.
Optimization can reduce readability and add code that is used only to improve the performance.

Computing

computer technologycomputercomputational
In computing, the performance of a computer system refers to the amount of useful work it accomplishes (i.e. instructions it executes).

Response time (technology)

response timetime delaypixel response time
Computer performance metrics (things to measure) include availability, response time, channel capacity, latency, completion time, service time, bandwidth, throughput, relative efficiency, scalability, performance per watt, compression ratio, instruction path length and speed up. Short response time for a given piece of work.

Throughput

maximum throughputBandwidthchannel efficiency
Computer performance metrics (things to measure) include availability, response time, channel capacity, latency, completion time, service time, bandwidth, throughput, relative efficiency, scalability, performance per watt, compression ratio, instruction path length and speed up. High throughput (rate of processing work).

System resource

resourcesresourcesystem resources
Low utilization of computing resource(s).

High availability

high-availabilityavailabilityfive nines
High availability of the computing system or application.

Data compression

compressionvideo compressioncompressed
Computer performance metrics (things to measure) include availability, response time, channel capacity, latency, completion time, service time, bandwidth, throughput, relative efficiency, scalability, performance per watt, compression ratio, instruction path length and speed up. Fast (or highly compact) data compression and decompression.

Bandwidth (computing)

bandwidthnetwork bandwidthbandwidths
Computer performance metrics (things to measure) include availability, response time, channel capacity, latency, completion time, service time, bandwidth, throughput, relative efficiency, scalability, performance per watt, compression ratio, instruction path length and speed up. High bandwidth.

Data transmission

digital communicationsdata transferdata communication
Short data transmission time.

Software

computer softwaresoftware technologyprogram
Computer software performance, particularly software application response time, is an aspect of software quality that is important in human–computer interactions.

Application software

applicationapplicationssoftware application
Computer software performance, particularly software application response time, is an aspect of software quality that is important in human–computer interactions.

Software quality

software reliabilitycode qualityquality
Computer software performance, particularly software application response time, is an aspect of software quality that is important in human–computer interactions.

Human–computer interaction

human-computer interactionhuman computer interactionHCI
Computer software performance, particularly software application response time, is an aspect of software quality that is important in human–computer interactions.

Processor design

hardware designarchitecturedesign
Occasionally a CPU designer can find a way to make a CPU with better overall performance by improving one of the aspects of performance, presented below, without sacrificing the CPU's performance in other areas.