带着问题去思考!大家好 上次我们讲到GC的一些基础知识,感谢评论的大佬给我指点。 配置参数 关于配置垃圾回收器的方法不是很多,所以建议不要随意去动,垃圾回收器的配置以及调优,很大程度上由硬件配置,可用资源和程序的行为决定。屈指可数的几个参数也是用于控制很高层的行为,主要取决于程序的类型, 工作站模式 ...
分类:
其他好文 时间:
2020-03-26 01:31:16
阅读次数:
70
七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,图中收集器所处的区域,则表示它是属于新生代收集器抑或是老年代收集器。 并行(Parallel):并行描述的是多条垃圾收集器线程之间的关系,说明同一时间有多条这样的线程在协同工作,通常默认此时用户线程是处于等待状态。 并发 ...
分类:
其他好文 时间:
2020-03-25 01:31:35
阅读次数:
74
1. 调优的原则: 合理编写代码 合理利用硬件资源 合理地进行条用 2. JVM调优的宗旨: 降低FULL GC的执行频次,减小GC的执行时间。 3. 添加常用的参数: -XX:+HeapDumpOnOutOfMemoryError 默认关闭 在发生内存溢出异常时是否生成堆转储快照, -Xloggc ...
分类:
其他好文 时间:
2020-03-24 11:12:50
阅读次数:
96
1.JMM Java内存模型 每条线程都有自己的工作内存[Working Memory] 线程的工作内存保存了被该线程使用的变量的主内存副本拷贝 线程对变量的所有线程之间也无法直接访问对方工作内存的变量,线程间变量值的传递均需要通过主内存来完成。 2.java的堆和栈 1)堆 heap:可动态申请的 ...
分类:
编程语言 时间:
2020-03-22 13:37:10
阅读次数:
86
如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看。 majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。 这两个数值表示一个进程自启动以来所发生的缺页中断的次数。 发成缺页中断后,执行 ...
分类:
系统相关 时间:
2020-03-22 12:21:42
阅读次数:
91
内存优化 关于内存优化 内存问题很隐蔽,内存问题出现时一个累计的结果。 内存问题: + 内存抖动:工具显示锯齿状、GC导致卡顿 + 内存泄露:可用内存减少、频繁GC + 内存溢出:OOM、程序异常 工具选择: + Memory Profiler 实时图表展示应用内存使用量; 识别内存泄露、抖动等; ...
分类:
其他好文 时间:
2020-03-21 23:48:29
阅读次数:
122
mysql与sql server都有整表导入的类库,但是查遍了资料发现sqlLite没有,除非自己去写个,发现用SQLiteTransaction导入数据也很快,附上代码 /// <summary> /// 导入major表数据 /// </summary> /// <param name="con ...
分类:
数据库 时间:
2020-03-19 23:16:42
阅读次数:
119
程序计数器 虚拟机栈 本地方法栈 堆 (新生代和老生代) 新生代(eden,two survivor) 老生代(永久代(现在变成元数据)) 元数据->类的字节流,常量,静态方法 (metaSpace的默认值在64位中20.75M)当第一次满的时候回触发GC; GC的算法: 引用计数法,标识清理法,复 ...
分类:
其他好文 时间:
2020-03-17 19:24:31
阅读次数:
72
java虚拟机底层原理与性能优化 1、java虚拟机内存模型能说说吗? 2、类加载器的双亲委派模型是什么? 3、java垃圾收集算法与收集器有哪些? 4、JVM诊断调优工具有哪些 5、每秒几十万并发的秒杀系统为什么会频繁发生GC? MySQL索引数据结构与性能优化 1、索引数据结构红黑树、Hash、 ...
分类:
其他好文 时间:
2020-03-15 13:43:13
阅读次数:
69
Java 堆内存被划分为新生代和老年代两部分,因此 JVM 通常采用分代回收算法。新生代主要使用复制和标记 清除垃圾回收算法 ,老年代主要使用标记 整理垃圾回收算法。JVM 中针对新生代和年老代分别提供了多种不同的垃圾收集器。 根据线程特点,可以将收集器分为三类: 1. 串行收集器 :Serial ...
分类:
其他好文 时间:
2020-03-14 20:12:46
阅读次数:
69