Its probably best practice to have a heap size as small as possible. This will reduce the thread lockup caused by garbage collection. You can minimise the frequency of full collections by modifying the new generation size by setting the
-XX:NewSize and -XX:MaxNewSize settings also there is -XX:SurvivorRatio which you can play around with. Use -verbose:gc switch to see the GC performance.
for a detailed description....