Understanding the behavior of transactional memory applications