个人简介

Echo Blog


江湖无名 安心练剑
  • Front Notes
    前端知识点 HTML知识 基本元素属性的定义熟悉,比如 DOCTYPE; HTML基本结构组成?header 的作用是什么? <script>、<script async>和<script defer>的区别? cookie的定义和它的作用; 我们在开发过程中为何要将CSS的<link> 写在 <head>...
    2018-10-26 22:41:12 | Front
  • Guava Sort Group
    场景 有时候 SQL 查询会有很多限制。 所以借助 Guava 进行分组排序等功能。 例子 比如查询 Person 的记录列表,要求按照 cardId 进行分组,选出这个分组最小的 createTime 和 最大的 updateTime。 查询得结果,还需要包含当前 Person 的对应所有 remark 列表信息。 这个直接使用 SQL 查询会导致很难实现和维护。 实战 m...
    2018-10-25 05:40:20 | Java
  • vmstat
    vmstat vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)...
    2018-10-10 02:10:29 | Tool
  • LMbench
    LMbench LMbench, Tools for Performance Analysis. LMbench
    2018-10-10 02:10:29 | Tool
  • JVM FULL GC 生产问题 III-多线程执行队列的封装实现
    情景回顾 我们在上一篇 JVM FULL GC 生产问题笔记 中提出了如何更好的实现一个多线程消费的实现方式。 没有看过的小伙伴建议看一下。 本来以为一切都可以结束的,不过又发生了一点点意外,这里记录一下,避免自己和小伙伴们踩坑。 生产者-消费者 原来的实现无法复用。 java 实现 接口定义 public interface IQueueService<T> {...
    2018-10-08 15:36:46 | Java
  • JVM FULL GC 生产问题 II-如何定位内存泄露?
    情景回顾 我们在上一篇 JVM FULL GC 生产问题笔记 中提出了如何更好的实现一个多线程消费的实现方式。 没有看过的小伙伴建议看一下。 本来以为一切都可以结束的,不过又发生了一点点意外,这里记录一下,避免自己和小伙伴们踩坑。 生产-消费者模式 简介 上一节中我们尝试了多种多线程方案,总会有各种各样奇怪的问题。 于是最后决定使用生产-消费者模式去实现。 实现如下: 这里...
    2018-10-08 15:36:46 | Java
  • JVM FULL GC 生产问题笔记
    故事的开始 早晨 8 点多,同事给我发了一条消息。 “跑批程序很慢,负载过高,上午帮忙看一下。” 我一边走路,一遍回复好的,整个人都是懵的,一方面是因为没睡饱,另一方面是因为对同事的程序一无所知。 而这,就是今天整个故事的开始。 问题的定位 到了公司,简单了解情况之后,开始登陆机器,查看日志。 一看好家伙,最简单的一个请求 10S+,换做实时链路估计直接炸锅了。 于是想到两种...
    2018-10-08 15:36:46 | Java
  • JVM-Profile-36
    引言 研发人员在遇到线上报警或需要优化系统性能时,常常需要分析程序运行行为和性能瓶颈。 Profiling技术是一种在应用运行时收集程序相关信息的动态分析手段,常用的JVM Profiler可以从多个方面对程序进行动态分析,如CPU、Memory、Thread、Classes、GC等,其中CPU Profiling的应用最为广泛。 CPU Profiling经常被用于分析代码的执行热点...
    2018-10-08 15:36:46 | Java