Tracy Boggiano has a process to automate cleaning up different caches in SQL Server:
First, we need to create a table to store our information on the caches we would like to clear on an automated basis and populate it with values.
For example, we clear SQL Plans if we 10,000 plans are Adhoc or Prepared plans that take up 5GBs of memory or Single Used Plans is greater than 10,000 or the memory used for Adhoc or Prepared plans if more than 50% of memory. We clear Transactions cache if is more than 2 GBs and Lock Manager : Node 0 if it is more than 2 GBs.
Read on for the script.