anchor.diff: -<a id="resource_manager"></a>
  -
  -# Managing Heap and Off-heap Memory
  +---
  +title: Managing Heap and Off-heap Memory
  +---
   
   By default, <span class="keyword">Apache Geode</span> uses the JVM heap. <span class="keyword">Apache Geode</span> also offers an option to store data off heap. This section describes how to manage heap and off-heap memory to best support your application.
   
  
positive.code: 
  The settings that will work well for your system depend on a number of factors, including these:
  
   - The size of the data objects you store in the cache  
  Very large data objects can be evicted and garbage collected relatively quickly. The same amount of space in use by many small objects takes more processing effort to clear and might require lower thresholds to allow eviction and GC activities to keep up.
  
   - Application behavior  
  Applications that quickly put a lot of data into the cache can more easily overrun the eviction and GC capabilities. Applications that operate more slowly may be more easily offset by eviction and GC efforts, possibly allowing you to set your thresholds higher than in the more volatile system.
  
   - Your choice of JVM  
  Each JVM has its own GC behavior, which affects how efficiently the collector can operate, how quickly it kicks in when needed, and other factors.
  
  ## Resource Manager Example Configurations
  
negative.code: 
      ``` pre
      Cache cache = CacheFactory.create();
  
      ResourceManager rm = cache.getResourceManager();
      rm.setCriticalHeapPercentage(85);
      rm.setEvictionHeapPercentage(75);
  
      RegionFactory rf =
        cache.createRegionFactory(RegionShortcut.PARTITION_HEAP_LRU);
        Region region = rf.create("bigDataStore");
      ```
  