What Every Programmer Should Know About Memory Including "commodity hardware today" "cpu caches" "virtual memory" "numa support" and so on