Difference between revisions of "Performance/WhatToTest"

From Adobe Open Source Wiki
Jump to: navigation, search
(More Complex Stuff)
(Runtime Support)
Line 36: Line 36:
  
 
== Complex Idioms ==  
 
== Complex Idioms ==  
== Runtime Support ==  
+
== Runtime Support ==
 +
* allocation / deletion
 +
** new, delete
 +
** malloc, free
 +
 
 +
* mathlib
 +
 
 +
* string manipulation routines
 +
** strcpy, strchr, strcat, etc.
 +
 
 +
* memory routines
 +
** memcpy, memmove, memset, memcmp, etc.
 +
 
 
== More Complex Stuff ==
 
== More Complex Stuff ==
 
* STL containers
 
* STL containers

Revision as of 01:00, 6 May 2008

What things need to be tested as part of this benchmark?

Contents

Fundamental Concepts

Most of these can't easily be tested.

  • regular types
  • basic math
  • basic flow control
  • dereference (pointer/iterator is a regular type that can be dereferenced)
  • type conversion
    • performance of type conversions (known to be a problem on certain compilers)

Language Concepts

  • abstraction
  • inheritance
  • function calls
  • exceptions
  • rtti
  • function objects
  • template instantiation
  • constructors
    • Are empty constructors correctly optimized away?

Simple Idioms

These are building blocks, with more than one way to express them. These are also usually found in headers like "inlines.h", "math_utils.h", etc.

  • swap
  • absolute value
  • min/max
  • switch versus if/else trees
  • pin values to range (max, min combo)
  • rotate bits
  • byte order reversal
  • round up/down
  • round float to int
  • thresholding
  • pointer alignment tests and comparisons

Complex Idioms

Runtime Support

  • allocation / deletion
    • new, delete
    • malloc, free
  • mathlib
  • string manipulation routines
    • strcpy, strchr, strcat, etc.
  • memory routines
    • memcpy, memmove, memset, memcmp, etc.

More Complex Stuff

  • STL containers
  • iostreams

Optimizations

Need to test as many as possible. And this list deserves it's own page.

Conformance to Specification

  • user specified swap in STL algorithms
  • short circuit evaluation of boolean expressions

Other?