Towards software performance by construction