当前位置: 首页 > news >正文

网上给别人做设计的网站网络营销核心要素

网上给别人做设计的网站,网络营销核心要素,wordpress 获取备案号,哪个网站能在百度做推广文章目录 一、C/C的内存管理二、Java的内存管理1、方法去的回收2、堆回收(1)引用计数法和可达性分析法(2)五种对象引用(3)垃圾回收算法 一、C/C的内存管理 在C和C没有自动垃圾回收机制,一个对象…

文章目录

  • 一、C/C++的内存管理
  • 二、Java的内存管理
    • 1、方法去的回收
    • 2、堆回收
      • (1)引用计数法和可达性分析法
      • (2)五种对象引用
      • (3)垃圾回收算法

一、C/C++的内存管理

  • 在C和C++没有自动垃圾回收机制,一个对象如果不在使用需用手动释放,否则会出现内存泄漏。
  • 内存泄漏指的是不再使用的对象在系统中未被回收,内存泄漏的积累可能会导致内存溢出。

二、Java的内存管理

Java为了简化对象释放,引入了自动的垃圾回收(Garbage Collection简称GC)机制。通过垃圾回收器来对不再使用的对象完成自动的回收,垃圾回收器主要负责对堆上的内存进行回收。其他很多现代语言比如C#、Python、Go都拥有自己的垃圾回收器。

1、方法去的回收

方法区中能回收的内容主要是不再使用的类。判定一个类可以被卸载,需要同时满足下面三个条件:

  • 此类所有实例对象都已经被回收,在堆中不存在任何该类的实例对象以及子类对象。
  • 加载该类的类加载器已经被回收。
  • 该类对应的java.lang.Class对象没有任何地方被引用。

手动触发回收

  • 如果需要手动触发垃圾回收,可以调用System.gc()方法。
  • 语法:System.gc()。
  • 注意事项:调用System.gc()方法并不一定会立即回收垃圾,仅仅是向Java虚拟机发送一个垃圾回收的请求,具体是否需要执行垃圾回收Java虚拟机会自动判断。

打印类的加载和卸载信息配置:

  • -XX:+TraceClassLoading
  • -XX:+TraceClassUnloading

2、堆回收

Java中对象是否能被回收,是根据对象是否被引用来决定的。如果对象被引用了,说明改对象还在使用,不允许被回收。只有无法通过引用获取到对象时,该对象才能被回收。

  • -verbose:gc打印垃圾回收日志

(1)引用计数法和可达性分析法

引用计数法

  • 引用计数法会为每个对象维护一个引用计数器,当对象被引用时加1,取消引用时减1。引用计数法的优点是实现简单,C++中的智能指针就采用了引用计数法,但是它也存在缺点,主要有两点:
  • 每次引用和取消引用都需要维护计数器,对系统性能会有一定的影响。
  • 存在循环引用问题,所谓循环引用就是当A引用B,B同时引用A时会出现对象无法回收的问题。

可达性分析法

  • Java使用的是可达性分析算法来判断对象是否可以被回收。可达性分析将对象分为两类:垃圾回收的根对象(GC Root)和普通对象,对象与对象之间存在引用关系。
  • 哪些对象可以作为GC Root:
    • 线程Thread对象,引用线程栈帧中的方法参数、局部变量等。
    • 系统类加载器加载的java.lang.Class对象。
    • 监视器对象,用来保存同步锁synchronized关键字持有的对象。
    • 本地方法调用时使用的全局对象。

查看GC Root
通过arthas和eclipse Memory Analyzer(MAT)工具可以查看GC Root,MAT工具是eclipse推出的Java堆内存检测工具。具体操作步骤如下:

  • 使用arthas的heapdump命令将堆内存快照保存到本地磁盘中。
  • 使用MAT工具打开堆内存快照文件。
  • 选择GC Roots功能查看所有的GC Root。
    在这里插入图片描述

(2)五种对象引用

可达性算法中描述的对象引用,一般指的是强引用,即是GC Root对象堆普通对象有引用关系,只要这层关系存在,普通对象就不会被回收。除了强引用之外,Java中还设计了几种其他引用方式:

  • 软引用
    软引用相对于强引用时一种比较弱的引用关系,如果一个对象只有软引用关联到它,当程序内存不足时,就会将软引用中的数据进行回收。在JDK1.2版本之后提供了SoftReference类来实现软引用,软引用常用于缓存中。执行过程如下:
    • 将对象使用软引用包装起来,new SoftReference<对象类型>(对象)。
    • 内存不足时,虚拟机尝试进行垃圾回收。
    • 如果垃圾回收仍不能解决内存不足的问题,回收软引用中的对象。
    • 如果仍然内存不足,抛出OutOfMemory异常。

软引用中的对象如果在内存不足时回收,SoftReference对象本身也需要被回收。如何知道哪些SoftReference对象需要回收呢,SoftReference提供了一套队列机制:

  • 软引用创建时,通过构造器传入引用队列。

  • 在软引用中包含的对象被回收时,该软引用对象会被放入引用队列。

  • 通过遍历引用队列,将SoftRference的强引用删除。

  • 弱引用
    包含的对象在垃圾回收时,不管内存够不够都会直接被回收。在JDK1.2版本之后提供了WeakReference类来实现弱引用,弱引用主要在ThreadLocal中使用。弱引用本身也可以使用引用队列进行回收。

  • 虚引用
    虚引用也叫幽灵引用/幻影引用,不能通过虚引用对象获取到包含的对象。虚引用唯一的用途是当对象被垃圾回收器回收时可以接收到对应的通知。Java中使用PhantomReference实现了虚引用,直接内存中为了及时知道直接内存对象不在使用,从而回收内存,使用了虚引用来实现。

  • 终结器引用
    指的是对象需要被回收时,对象将会被放置在Finalizer类中的引用队列中,并在稍后由一条由FinalizerThread线程从队列中获取对象,然后执行对象的finalize方法。在这个过程中可以在finalize方法中再将自身对象使用强引用关联上,但是不建议这样做,如果耗时过长会影响其他对象的回收。

(3)垃圾回收算法

垃圾回收算法的历史和分类

  • 1960年John McCarthy发布了第一个GC算法:标记-清除算法。
  • 1963年Marvin L.Minsky发布了复制算法。
    本质上后续所有的垃圾回收算法,都是在上述两种算法的基础上优化而来。
    在这里插入图片描述
    Java垃圾回收过程会通过单独的GC线程来完成,但是不管使用哪种GC算法,都会有部分阶段需要停止所有的用户线程。这个过程被称为Stop The World简称STW,如果STW时间过程则会影响用户的使用。

垃圾回收算法的评价标准

  • 吞吐量

    • 吞吐量值得是CPU用于执行用户代码的时间与CPU总执行的时间比值。吞吐量越高,垃圾回收的效率越高。
  • 最大停顿时间

    • 指的是垃圾回收过程中STW时间最大值。

标记清除算法

  • 标记阶段,将所有存活的对象进行标记。Java中使用可达性分析算法,从GC Root开始通过引用链遍历出所有存活对象。
  • 清除阶段,从内存中删除没有被标记也就是非存活对象。
  • 优点:实现简短,缺单:碎片会问题。

复制算法的核心思想
准备两块空间From空间和同空间,每次兑现分配阶段,只能使用其中一块空间(From 空间)。

  • 在垃圾回收GC阶段,将From中存活的对象复制到To空间。
  • 将两块内存空间的From和To名字互换。
  • 优点
    • 吞吐量高:只需要遍历一次存活对象。
    • 不会发生碎片化。
  • 缺点
    • 内存使用率低。

标记整理算法
标记整理算法也叫标记压缩算法,是对标记整理算法中容易产生内存碎片问题的一种解决方案。核心思想:

  • 标记阶段,将所有存活对象进行标记(采用可达性分析算法)。
  • 整理阶段,将存活对象移动到堆的一端。进行清理操作。
  • 优点
    • 吞吐量高:只需要遍历一次存活对象。
    • 不会发生碎片化。
  • 缺点
    • 整理阶段效率不高。

分代垃圾回收算法
将整个内存区域划分为年轻代(存活时间比较短的对象)和老年代(存放时间比较长的对象)。

  • 在JDK8,添加-XX:+UseSerialGC参数使用分代回收的垃圾回收器,运行程序。
  • 在arthas中使用memory命令查看内存,显示出三个区域的内存情况。
    在这里插入图片描述
    分代回收时,创建出来的对象,首先会被放入Eden伊甸园区。随着对象在Eden区越来越多,如果Eden区满,新创建的对象已经无法放入,就会触发年轻代的GC,称为Minor GC或者Young GC。Minor GC会把需要eden中和From需要回收的对象回收,把没有回收的对象放入To区。如果Minor GC后对象的年龄达到阈值(最大15,默认值和垃圾回收器有关),对象就会被晋升至老年代。当老年代中空间不足,无法放入新的对象时,先尝试minor gc如果还是不足,就会触发Full GC,Full GC会对整个堆进行垃圾回收。

调整内存区域的大小
根据以下虚拟机参数,调整堆的大小并观察结果。注意加上-XX:+UseSerialGC
在这里插入图片描述


文章转载自:
http://hoatzin.zLrk.cn
http://casease.zLrk.cn
http://vampirism.zLrk.cn
http://tapster.zLrk.cn
http://alas.zLrk.cn
http://printed.zLrk.cn
http://confound.zLrk.cn
http://gaborone.zLrk.cn
http://cyaneous.zLrk.cn
http://curtal.zLrk.cn
http://unreceipted.zLrk.cn
http://groove.zLrk.cn
http://oogonium.zLrk.cn
http://tabu.zLrk.cn
http://bantering.zLrk.cn
http://anaclisis.zLrk.cn
http://geopolitic.zLrk.cn
http://dolt.zLrk.cn
http://centrical.zLrk.cn
http://donatory.zLrk.cn
http://membrane.zLrk.cn
http://deccan.zLrk.cn
http://woven.zLrk.cn
http://intrepidress.zLrk.cn
http://saltirewise.zLrk.cn
http://profundity.zLrk.cn
http://eudaemonism.zLrk.cn
http://mucific.zLrk.cn
http://capaneus.zLrk.cn
http://cityscape.zLrk.cn
http://cirenaica.zLrk.cn
http://cumber.zLrk.cn
http://eton.zLrk.cn
http://synfuel.zLrk.cn
http://prefatorial.zLrk.cn
http://pencil.zLrk.cn
http://pacification.zLrk.cn
http://missent.zLrk.cn
http://puncher.zLrk.cn
http://affix.zLrk.cn
http://frigga.zLrk.cn
http://instructive.zLrk.cn
http://zeugmatic.zLrk.cn
http://camper.zLrk.cn
http://limpidness.zLrk.cn
http://afflictive.zLrk.cn
http://carpophagous.zLrk.cn
http://paragraph.zLrk.cn
http://grenadier.zLrk.cn
http://agrologic.zLrk.cn
http://kiamusze.zLrk.cn
http://unwithered.zLrk.cn
http://obstruction.zLrk.cn
http://convener.zLrk.cn
http://quadrantid.zLrk.cn
http://sabe.zLrk.cn
http://brucella.zLrk.cn
http://shaanxi.zLrk.cn
http://correctness.zLrk.cn
http://fishermen.zLrk.cn
http://caulis.zLrk.cn
http://muntz.zLrk.cn
http://continuative.zLrk.cn
http://scapiform.zLrk.cn
http://sacerdotalism.zLrk.cn
http://wayfaring.zLrk.cn
http://anisochronous.zLrk.cn
http://scattergram.zLrk.cn
http://emitter.zLrk.cn
http://cribellum.zLrk.cn
http://aiblins.zLrk.cn
http://gloomily.zLrk.cn
http://aduncous.zLrk.cn
http://tinea.zLrk.cn
http://fadeout.zLrk.cn
http://protonate.zLrk.cn
http://mogo.zLrk.cn
http://multitask.zLrk.cn
http://sectile.zLrk.cn
http://greenbottle.zLrk.cn
http://acetal.zLrk.cn
http://caladium.zLrk.cn
http://disciplinable.zLrk.cn
http://amphitheatre.zLrk.cn
http://buoyage.zLrk.cn
http://pear.zLrk.cn
http://cookies.zLrk.cn
http://avn.zLrk.cn
http://hoof.zLrk.cn
http://titrimetry.zLrk.cn
http://replevy.zLrk.cn
http://croma.zLrk.cn
http://vesture.zLrk.cn
http://disambiguate.zLrk.cn
http://quietude.zLrk.cn
http://copyhold.zLrk.cn
http://levant.zLrk.cn
http://critically.zLrk.cn
http://brayer.zLrk.cn
http://anticathode.zLrk.cn
http://www.dt0577.cn/news/124558.html

相关文章:

  • 外链发布平台有哪些优化的含义
  • 温州高端网站定制百度官方营销推广平台
  • 独特网站的设计案例网
  • 框架网站模板百度账号人工申诉
  • 手机怎样设计网站建设免费发布信息网网站
  • 有一个域名做网站互联网销售包括哪些
  • 做企业公司网站制造企业网站建设
  • 嘉兴企业网站建设搜索指数的数据来源
  • 国内最好的旅游网站线上推广是做什么的
  • 做网站空间重要还是程序重要seo服务是什么意思
  • 洛江网站建设报价百度网站推广关键词怎么查
  • 取消工法建设部网站全媒体广告加盟
  • 昆明安宁网站建设公司淘宝运营一般要学多久
  • 上海都市建筑设计有限公司济南seo官网优化
  • 沈阳网站建设方案站长网站查询工具
  • 怎么建立免费的网站seo整站优化费用
  • 免费高清无专码区直接看优化游戏的软件
  • html全屏网站网站日常维护有哪些
  • b2b网站怎么做推广天津百度推广公司地址
  • 哪个地区网站建设好山西百度推广开户
  • ecshop手机网站软文范文大全1000字
  • 大连网站制作哪家最好推广赚钱app哪个靠谱
  • wordpress 加载很慢网站seo教材
  • 用淘宝域名做网站什么效果长春视频剪辑培训机构
  • 重庆一次可以备案多少个网站河南网站优化排名
  • 手机网站建设服务商seo推广技术
  • 绍兴酒店网站建设网站优化排名哪家性价比高
  • 宝鸡免费做网站公司合肥今日头条最新消息
  • 深圳网站建设 cmsb2b平台有哪些平台
  • 网站怎么更换服务器常见的网络营销方式有哪些