写点什么

第 9 周 系统架构作业

发布于: 2020 年 12 月 20 日

1、请简述 JVM 垃圾回收原理。

因为垃圾收集器类型比较多,运行原理差异较大,现以 G1 垃圾收集器来说明垃圾收集的原理。

jvm 进程运行时,垃圾收集器会采用可达性分析算法标记堆中对象是否仍然存活,当 eden 区空间耗尽时,G1 会启动 Minor GC,如果有存活对象,采用标记复制算法,将对象转移到 S0 中,当下次再发生 minor gc 的时候,将 Eden 区和 S0 区的存活对象复制到 S1 中(这种复制算法可以保证 S1 中来自 Eden 和 S0 中对象的地址是连续的),清空 Eden 区和 S0 的空间,然后交换 S0 和 S1 的角色,之后发生 minor gc 时,循环往复。直到存活对象 old enough,升入老年代。当老年代的空间耗尽时,会触发 Full GC,会对 Young、Old、和 Perm 区进行回收整理。Young GC 的效率比较高,stop the wordl 的时间比较短,而 Full GC 效率很低,stop the wordl 的时间比较长,应该尽量避免。

2、设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?

挑战:

a、瞬间高并发;

b、无数秒杀器的访问压力。

思路:

a、静态化:将秒杀系统页面由动态转变为静态,减少服务器处理的性能开销;

b、并发控制,防秒杀器:设置阀门,只放最前面的一部分人进入秒杀系统;

c、简化流程:砍掉不重要的分支流程。

d、前端优化:采用 YSLOW 原则提升页面响应速度。


用户头像

还未添加个人签名 2019.02.12 加入

还未添加个人简介

评论

发布
暂无评论
第 9 周 系统架构作业