Memory Performance: Dealing with Applications, Systems and Architecture