刚刷到了一个关于什么语言适合做GUI的知乎问题,想到了原生开发在底层性能优化上能做的比混合开发(运行时需预先编译为目标语言)高出很多倍。其实,是一个关于技术选型的话题。由此,我联想到了当前工作中遇到的一些问题和两年前在一家创业公司的工作经历。
Kanson's Blog
想到并做到 · Hack the world
刚刷到了一个关于什么语言适合做GUI的知乎问题,想到了原生开发在底层性能优化上能做的比混合开发(运行时需预先编译为目标语言)高出很多倍。其实,是一个关于技术选型的话题。由此,我联想到了当前工作中遇到的一些问题和两年前在一家创业公司的工作经历。
现在是北京时间2020年5月16日早上7:37,我在杭州的家里早早起床(大概不到6点就醒了),洗漱后出去买了早餐,这个时间要比平时出门上班早1个小时,难得的自由与清闲啊~~有木有?!昨天傍晚下了小雨,和同事们一起吃过饭后惊喜地发现雨停了,开心!所以出去走走都觉得好凉爽,好放松!
GC:哪些内存需要回收?什么时候回收?如何回收?
当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,就需要对内存动态分配和垃圾收集技术实施必要的监控和调节。
垃圾收集器关注的是Java堆和方法区中的动态分配和回收的内存。
判断对象存活与否?
1、引用计数算法:主流的Java虚拟机未采用,很难解决对象之间相互循环引用的问题
2、可达性分析算法:判定对象是否可回收
对象真正死亡:至少经历两次标记过程:finalize()最多执行一次
分为标记和清除两个阶段,是最基础的收集算法,主要不足:1、效率问题;2、空间问题:标记清除之后会产生大量不连续的内存碎片,导致之后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次GC。
1 / 3