20篇精品文章+视频,手把手带你攻克OOM难题!|HeapDump性能社区专题精选
Outofmemory (OOM)是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换空间都已经被分配了。OOM的官方解释是:,根据专属讲师公与的总结,常见的OOM有以下10种(其中OOMKiller是操作系统层面的概念)。开篇推荐的是公与大佬的视频课程《那些年我们遇到的OOM》第一期,在本期课程中,公与重新梳理
Wesley13 Wesley13
4年前
Volatile概述
Volatile概念volatile是一个特征修饰符(typespecifier)。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。——百度百科所以呢它主要是两个作用:一个是
某内容电商App sign签名分析 复习下之前的技巧
一、目标现在内容电商,社交电商,直播电商等等概念多的眼花缭乱,终极目的就一条,卖货给你。正如我们分析他的sign签名一样,套路就一条,jadxfrida这个sign数了数,正好32位,难道是md5?二、步骤上jadx先搜索下"sign"记得带上引号。结果只有40多个,而且第二个开上去就有眼缘,点进去看看Stringam7166a(b
CuterCorley CuterCorley
4年前
C语言入门系列之6.一维和二维数组
一、数组的概念有如下几组数据:学生的学习成绩银行的账单一行文字这些数据的特点是:具有相同的数据类型;使用过程中需要保留原始数据。C语言为这类数据,提供了一种构造数据类型——数组。在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组
Stella981 Stella981
4年前
Docker 的前世今生
虚拟化  要解释清楚Docker,首先要解释清楚容器(Container)的概念。要解释容器的话,就需要从操作系统说起。操作系统太底层,细说的话一两本书都说不清楚。这里就一句话来总结一下:操作系统(OperatingSystem,简称OS)是管理计算机硬件与软件资源的计算机程序,并且为软件运行提供通用服务的系统软件。  随着硬件的
Stella981 Stella981
4年前
Skynet 通过组播(Multicast)实现一个简单的世界频道
什么是世界频道?  "世界频道"这个概念就是在一个游戏内经常见到。简单来说,世界频道就是在游戏内的一个大区中所有玩家可以接收、发布的消息的一个玩家间的统称。  玩家在游戏中进行体验的同时,通常需要发布一些特殊的消息,包含:"买卖装备、组队等";通常游戏中的各种频道的实现都依赖于消息队列的广播方式。Skynet的组播解决
Wesley13 Wesley13
4年前
5.关于 CPU 你需要了解的(二)
上一篇对CPU内部结构、CPU指令集、SMP和NUMA这三个方面做了简单介绍,这篇接着对如下两个知识点做介绍。超线程与超频CPU缓存1.超线程和超频很多同学应该听说过超线程这个概念,注意:它与多线程不是一个东西哈。那什么是超线程呢?通常情况下,一个CPU核心同一时刻只能处
Stella981 Stella981
4年前
DevOps运维系统:监控管理
ITIL4的监控管理在DevOps风行的当下,人们越来越关注自动化运维。其中,监控预告警、监控自愈越发流行起来。在《DevOps实践指南》和《持续交付发布可靠软件的系统方法》两本书中(DevOps的教科书级别),都有涉及讲解监控管理和实施。其实,监控早不是什么新概念,运维界无论在理论还是工具中,一直在不断探索。监控管理虽然在I
Wesley13 Wesley13
4年前
Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理
最近事情较多,好久没发文章了。前面关于Java并发的文章中主要介绍了并发的概念、思想、JavaSE5中java.util.concurrent包中的工具类的使用和实现源码的分析。这篇我们来简要了解一下JavaSE7中提供的一个新特性——ForkJoin框架。0\.处理器发展和需求背景回想一下并发开发的初衷,其实可以说是有两点
Stella981 Stella981
4年前
Golang并发解读
进程与线程概念在面向进程设计的系统中,进程(process)是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。进程是程序(指令和数据)的真正运行实例。用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多关系),以允许同时有多位用户运行同一程序,却不会相冲突。线程(th