依据的原则是根据Java Performance里面的推荐公式来进行设置。

    Java整个堆大小设置,Xmx 和 Xms设置为老年代存活对象的3-4倍,即FullGC之后的老年代内存占用的3-4倍

    永久代 PermSize和MaxPermSize)(jdk8以前)设置为老年代存活对象的1.2-1.5倍。

    年轻代Xmn的设置为老年代存活对象的1-1.5倍。Sun官方推荐配置为整个堆的3/8

    老年代的内存大小设置为老年代存活对象的2-3倍。

    https://www.cnblogs.com/zhangfengshi/p/11343102.html