锐力易思▼ 2017▼ java gc jvm jmap jstat

R057.Java面向内存编程

不等不靠,有囧有料。攻城狮,是一种精神,亦是一种品质。

面向增删改查面向性能编程,其关键一步是面向内存编程。
就像每次敲下.时,我们会脑补NullPointerException一样,
每个方法和类,我们都要脑补其生命周期,内存占用以及大概何时回收。

实际项目通常是师傅带徒弟,着急忙慌搞业务功能,其他基本靠框架。
在当性能出现瓶颈时,有的人会选择分布式,而我建议先关注以下,

  • 写一手好代码,可读性好,内存友好(编码攻城狮)
  • 调一手好参数,高吞吐,低延迟(参数攻城狮)

@史荣久 / 2017-12-24 / CC-BY-SA-3.0

观看视频

内容摘要

  • 框架是专家写的且优化过。创建对象通常很廉价。
  • 对象有多大(byte),多了也不那么廉价。
  • 项目中比较集中的坏味道代码。
  • JVM内存模型和GC特点。
  • JVM启动时和GC密切相关的参数。
  • 指标:MinoGC 1小时,30ms内完成。FullGC不要发生,1秒内完成。
  • 自带命令工具Jstat/jmap/jstack/jinfo
  • 集成mat/jprofile, 自带jvisualvm/jconsol

参考资料

欢迎围观

if (you.accept(MoilionCircle.SPIRIT)) {
    if(you.haveADL()){
        MoilionCircle we = you.search(MoilionCircle.SLOGAN);
        we.welcome(you);
    }
    if(you.share(this)){
        We.thank(you);
        We.mayFind7Moilion();
    }
}

后记

垃圾回收,就像《大逃杀》或者”吃鸡游戏”。
程序员在上帝视角,不断new着各样的对象。

今天虽是平安夜,可我还是把题图弄的挺沉重。
因为临近不惑,还有众多疑惑待解,不容耽搁。

2017年12月10日,中兴42岁程序员坠楼身亡。
2017年09月07日,WePhone创始人跳楼自杀。

写代码救不了人类,或许AI可以。

《R057.Java面向内存编程》 从`面向增删改查`到`面向性能`编程,其关键一步是面向内存编程。每个方法和类都要脑补其生命周期,内存占用以及大概何时回收。
题图:《垃圾围城》是北京周边的垃圾污染状况,《塑料王国》是全世界的塑料垃圾在中国处理的情况。