Software Performance Engineering using Virtual Time Program Execution