我们在一个linux机器上运行多个服务器进程实例.该盒子有8个内核和16GB的RAM.我使用Java 1.6启动-Xincgc选项的每个进程.
我们在整个应用程序中配备了各种计时器,用于跟踪完成各种任务的时间.当垃圾收集发生时,我注意到盒子上的每个java进程都打印出当时正在运行的任何任务都很慢.
它不会拖延很长时间,可能是100-300ms左右,但延迟是一个很大的因素.它也不会经常停滞,只是定期.
当垃圾收集发生时是否会阻止任何java进程随时获取?如果是这样,有什么方法吗?我应该使用不同的GC选项吗?
更新:
为了清楚起见,我并不担心在GC发生时一个进程停止.我可以调整设置或针对该情况进行优化.我只是想知道为什么每次运行Java进程似乎都在我认为它们或多或少独立的同时停滞不前.
我正在尝试使用 useNavigation() 挂钩与反应导航交互,以响应我在 useEffect() 中注册的回调。linter 警告我 useEffect() 缺少依赖项。如果我将导航挂钩添加为依赖项,则效果会持续运行。我试图避免这种情况,并想知道除了忽略 linter 错误之外是否还有正确的方法。
不提供依赖数组会导致效果持续触发的相同行为。
这可能是react-navigation-hooks包中的useNavigation()钩子如何工作的一个根本问题。
function MyComponent() {
const navigation = useNavigation();
useEffect(() => {
navigation.navigate('Home');
}, []);
}
Run Code Online (Sandbox Code Playgroud)
结果是:
React Hook useEffect has a missing dependency: 'navigation'. Either include it or remove the dependency array.