count := 10000000. repeats := 5. numberInt := 2. numberFloat := 2.3. multiplierInt := 10. multiplierFloat := 10.3. floatXint := (1 to: repeats) collect: [ :i | [ count timesRepeat: [ numberFloat * multiplierInt ] ] timeToRunWithoutGC ]. floatXfloat := (1 to: repeats) collect: [ :i | [ count timesRepeat: [ numberFloat * multiplierFloat ] ] timeToRunWithoutGC ]. intXint := (1 to: repeats) collect: [ :i | [ count timesRepeat: [ numberInt * multiplierInt ] ] timeToRunWithoutGC ]. intXfloat := (1 to: repeats) collect: [ :i | [ count timesRepeat: [ numberInt * multiplierFloat ] ] timeToRunWithoutGC ]. intAsFloatXfloat := (1 to: repeats) collect: [ :i | [ count timesRepeat: [ numberInt asFloat * multiplierFloat ] ] timeToRunWithoutGC ]. { 'float * int' -> floatXint average asFloat. 'float * float' -> floatXfloat average asFloat. 'int * int' -> intXint average asFloat. 'int * float' -> intXfloat average asFloat. 'int asFloat * float' -> intAsFloatXfloat average asFloat. } asOrderedDictionary