备战春招-23

【面试题】

  1. n个有序小文件,合并成有序的一个文件
    有点像力扣合并K个升序链表,归并和优先队列(knlogk)
  2. Top K 问题
    快排的partition过程O(n) ,或者优先队列也行O(nlogk)
  3. cpu占用高如何排查
  • top指令:排查,查看占用cpu高的进程
    可看出PID为4060的java进程占用cpu最高
  • 查看线程的子进程占用情况,top -p 4606 -H ,将 子进程id 转换成16进制 1228
  • 查询具体出现问题的代码位置 jstack 4606|grep 1228 -C 30
  1. GC如何优化
    如果你没有设置内存大小而且出现了大量超时日志,那么你需要在系统中进行GC优化了
  • 减少创建对象的总数量。
    • 使用StringBuilder或StringBuffer代替String
    • 尽可能少的输出日志
  • 将转移到老年代的对象数量降到最少(可以通过 调整年轻代的大小 来实现)
  • 减少Full GC的时间
    和Minor GC相比,Full GC的执行时间长很多。因此,如果执行Full GC的时间过长(超过1s),将导致连接服务的请求超时。如果通过减少老年代的大小来降低Full GC执行时间,会造成OutOfMemoryError或增加Full GC的次数。如果增大老年代大小以期减少Full GC的执行次数,那么执行时间又会增加。因此,需要合理的设置 老年代大小。

GC优化的步骤
监控GC状态
根据分析结果决定是否需要GC优化
设置GC类型和内存大小
分析结果
如果结果满意,将参数应用到所有机器并停止优化

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务