I tend to slant towards limiting memory consumption and allocations. I know it's old school, but: - Most of the non-throwaway code I write is heavily parallel. This means that excessive memory allocation and garbage collection activity will serialize a lot of otherwise parallelizable code. It also means there will be a lot of contention for a shared memory bus. - My primary language is D, which doesn't have good 64-bit support yet (though this is being remedied). - I work with fairly large datasets on a regular basis.