Wesley13 Wesley13
3年前
C++ 析构函数与内存池
CPrimer书中也提到编写class时要注意copycontrol成员(拷贝构造函数,赋值操作符,析构函数,C11又多个移动构造函数)。工作时在C和C之间切换,有时就忘记了C的细节(真的好讨厌)。C析构函数与构造函数对应,构造对象时调用构造函数,析构对象时调用析构函数,于是可以在对象的析构函数中释放资
Easter79 Easter79
3年前
Tomcat8.5&Mysql8.0配置数据库连接池(DBCP)
DBCP(DataBaseconnectionpool),数据库连接池。是apache上的一个java连接池项目,也是tomcat使用的连接池组件。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。百度百科(htt
Wesley13 Wesley13
3年前
Java中常量池详解
在Java的内存分配中,总共3种常量池:转发链接:https://blog.csdn.net/zm13007310400/article/details/77534349(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fzm13007310400%2
Stella981 Stella981
3年前
Netty内存池及命中缓存的分配
内存池的内存规格:在前面的源码分析过程中,关于内存规格大小我们应该还有些印象。其实在Netty内存池中主要设置了四种规格大小的内存:tiny是指0512Byte之间的规格大小,small是指512Byte8KB之间的规格大小,normal是指8KB16MB之间的规格大小,huge是指16MB以上。为什么Netty会选择
Wesley13 Wesley13
3年前
Java知识图谱
1JVM1.内存模型(内存分为几部分?堆溢出、栈溢出原因及实例?线上如何排查?)2.类加载机制3.垃圾回收2Java基础什么是接口?什么是抽象类?区别是什么?什么是序列化?网络通信过程及实践什么是线程?java线程池运行过程及实践(Exec
Stella981 Stella981
3年前
Netty 的内存池源码
_/\__\Copyright2013TheNettyProject__\__\TheNettyProjectlicensesthisfiletoyouundertheApacheLicense,__\version2.0(the"License");youmaynotusethisf
Stella981 Stella981
3年前
Netty 中的内存分配浅析
Netty出发点作为一款高性能的RPC框架必然涉及到频繁的内存分配销毁操作,如果是在堆上分配内存空间将会触发频繁的GC,JDK在1.4之后提供的NIO也已经提供了直接直接分配堆外内存空间的能力,但是也仅仅是提供了基本的能力,创建、回收相关的功能和效率都很简陋。基于此,在堆外内存使用方面,Netty自己实现了一套创建、回收堆外内存池的相关功能。基
Wesley13 Wesley13
3年前
Java中的OutOfMemoryError的各种情况及解决和JVM内存结构
在JVM中内存一共有3种:Heap(堆内存),NonHeap(非堆内存)\3\和Native(本地内存)。\1\堆内存是运行时分配所有类实例和数组的一块内存区域。非堆内存包含方法区和JVM内部处理或优化所需的内存,存放有类结构(如运行时常量池、字段及方法结构,以及方法和构造函数代码)。本地内存是由操作系统管理的虚拟内存。当一个应用内存不足时
Stella981 Stella981
3年前
Netty如何监控内存泄露
Netty如何监控内存泄露\TOC\前言一般而言,在Netty程序中都会采用池化的ByteBuf,也就是PooledByteBuf以提高程序性能。但是PooledByteBuf需要在使用完毕后手工释放,否则就会因为PooledByteBuf申请的内存空间没有归还进而造成内存泄露,最终OOM。而一旦
Stella981 Stella981
3年前
Redis源码剖析 内存
Redis通过自己的方法管理内存,主要方法有zmalloc(),zrealloc(),zcalloc()和zfree(),分别对应C中的malloc(),realloc(),calloc()和free().redis自己管理内存的好处主要有两个:1、可以利用内存池等手段提高内存分配的性能;2、’可以掌握更多的内存信息,以便于redi