请考虑机器接收需要大约6ms处理的高频数据,并根据当前在这些参数上运行的系统给出下面的GC日志,建议您使用哪种内存调整建议.
提前致谢.
java -Xms4144m -Xmx4144m -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:CMSFullGCsBeforeCompaction=1 -XX:+PrintGCDetails -Xloggc:gc.log -verbose:gc -XX:SurvivorRatio=4 -XX:+UseCompressedOop
Run Code Online (Sandbox Code Playgroud)
GC日志
198.341: [GC 198.341: [ParNew: 1178752K->235712K(1178752K), 0.7930435 secs] 2653227K->1913561K(4007744K), 0.7931001 secs] [Times: user=1.36 sys=0.03, real=0.79 secs]
219.946: [GC 219.946: [ParNew: 1178752K->235712K(1178752K), 0.6662757 secs] 2856601K->2095809K(4007744K), 0.6663335 secs] [Times: user=1.23 sys=0.03, real=0.67 secs]
230.170: [GC 230.170: [ParNew: 1178752K->235712K(1178752K), 0.7158400 secs] 3038849K->2235472K(4007744K), 0.7158940 secs] [Times: user=1.39 sys=0.02, real=0.72 secs]
242.243: [GC 242.243: [ParNew: 1178752K->235712K(1178752K), 0.8650113 secs] 3178512K->2538982K(4007744K), 0.8650603 secs] [Times: user=1.64 sys=0.06, real=0.87 secs]
257.200: [GC 257.200: [ParNew: 1178752K->235712K(1178752K), 0.6999034 …Run Code Online (Sandbox Code Playgroud) 我正在循环中处理一个列表,该循环运行async返回一个promise我不想退出处理异常,所以我聚合它们并将它们传递给外部finally块中的resolve回调.我想知道这是否是反模式,如果是,请提供一个如何正确执行的指针.谢谢.
例
async doSomething(list) {
let errorCount = 0
let errors = []
return new Promise(async (resolve, reject) => {
try {
list.forEach(async (item) => {
try {
actionThatThrows(item)
} catch (e) {
errorCount++
errors[errorCount] = e
}
})
} catch (e) {
errorCount++
errors[errorCount] = e
} finally {
if (errorCount > 0) {
resolve(errors)
} else {
resolve()
}
}
})
Run Code Online (Sandbox Code Playgroud)
}