我目前正在运行一个需要最大堆大小为16GB的应用程序.
目前我使用以下标志来处理垃圾收集.
-XX\:+UseParNewGC, -XX\:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=50, -XX\:+DisableExplicitGC, -XX\:+PrintGCDateStamps, -XX\:+PrintGCDetails, -Xloggc\:/home/user/logs/gc.log
Run Code Online (Sandbox Code Playgroud)
但是,我注意到在一些垃圾收集期间,应用程序会锁定几秒钟然后继续 - 这是完全不可接受的,因为它是一个游戏服务器.
我的垃圾收集日志可以在这里找到.
关于我应该改变什么以减少这些长时间停顿的任何建议将不胜感激.
我目前正在研究一些我需要计算类似值的东西
(65 ^ 17)mod 3233 =*
回答上述问题是2790,但是因为65 ^ 17比可由Math.pow返回的值越大它总是给错误的答案.
我已经使用BigIntegers(以及内置的modPow)编写了一个实现,但是如果可能的话我想避免使用它们.
有没有其他方法可以避免使用BigIntegers?