Well there are a lot of factors that determine how large the cache is and how many plans are in there etc. I typically don't worry too much about how many are in the cache or who large they are as SQL2008 & up does a much better job at managing that. This query will show you how many of each type are in the cache along with sizes better than what you posted.
-- Cache objects
SELECT TOP 10
LEFT([name], 20) as [name],
LEFT([type], 20) as [type],
[single_pages_kb] + [multi_pages_kb] AS cache_kb,
order by single_pages_kb + multi_pages_kb DESC
-- Procedure Cache
-- Object Plans (CACHESTORE_OBJCP)
-- SQL Plans (CACHESTORE_SQLCP)
-- Bound Trees(algebrizer) (CACHESTORE_PHDR)
-- Extended Stored Procedures (CACHESTORE_XPROC).
But what I would concentrate more on is which plans are not getting reused more than anything. If you have lots of compiles and or recompiles you will spend a lot of resources managing and calculating new plans. Take a look at the perf counters for compile & recompiles. You can also look at the usecounts column of the exec_cahced_plans to see which plans don't get reused. If you can fix queries that don't reuse plans you can achieve better performance all the way around and minimize any cache pressure.