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

自己做的网站给人攻击了怎么办软件开发涵盖网站开发吗

自己做的网站给人攻击了怎么办,软件开发涵盖网站开发吗,网站建设公司科技寡头正在垄断世界,aws 虚机wordpress教程首先预期你已经基本了解垃圾回收的相关知识#xff0c;包括新生代垃圾回收器#xff0c;老年代垃圾回收器#xff0c;以及他们的算法#xff0c;可达性分析等等。 先想象一个场景 最开始黑色节点是GC-Roots的根节点#xff0c;这些对象有这样的特点因此被选为垃圾回收的根…首先预期你已经基本了解垃圾回收的相关知识包括新生代垃圾回收器老年代垃圾回收器以及他们的算法可达性分析等等。 先想象一个场景 最开始黑色节点是GC-Roots的根节点这些对象有这样的特点因此被选为垃圾回收的根节点。 虚拟机栈(栈桢中的本地变量表)中的引用的对象  方法区中的类静态属性引用的对象  方法区中的常量引用的对象  本地方法栈中JNI的引用的对象 记不住没事~你只需要知道这些对象都有长生不老的特点它一直存在所以从它开始遍历查找才知道哪些对象没有人使用可以被回收。 那么最开始堆里的对象默认都是白色的。 现在要开始垃圾回收了。 如果是你你怎么设计嗯我们因为有这张图从三维看二维开天眼立马知道哪些对象是活着的。 但是程序不知道它需要遍历。这里需要注意一个其他博客都没有提到的点这里是GC-Roots引用了右边的对象而不是右边的对象引用了GC-Roots。 你可以这么思考因为是Roots依赖了右边的某些对象又因为Roots是持久存在的那么右边某些对象也必须存在。所以是Roots引用了某些对象所以这些对象必须存活。很多博客在这里没有说清楚引用关系。 如果是右边对象依赖了GC-Roots那么右边的对象存在与否和Roots有什么关系 因为人引用了空气他需要空气所以必须空气存在。 1.定义 黑色一直存在不需要清理的对象它用到的对象都确定需要存活。下一次不扫描黑色对象。 灰色一直存在不需要清理的对象它用到的其他对象还没确定是否存活。下一次从它开始扫描。 白色扫描完毕后还是白色的对象就清理掉。 颜色的标记 记录在每个对象的头部信息的Markword中 CMS有四步初始标记STW并发标记重复标记STW并发清除四步。 1.开始遍历 第一次遍历 第二次遍历 第三次扫描 第四次扫描 第五次扫描 第六次扫描 第七次扫描 然后这时候把所有白色对象清理掉。 以上的图的过程都是发生在并发标记中。先不考虑重复标记。 2.思考 2.1 三色标记解决了什么问题 思考一下你现在幻身为一个线程你只知道堆里有一堆对象你并不知道他们是什么颜色你现在只知道根节点在堆内存的哪个地址下。老板叫你去清理堆内存的废物对象。而且你随时可能会被CPU抽掉灵魂。线程被阻塞 你我特么不能每次醒过来都从根节点去遍历吧。不行我得有个记事本线程可以访问标记记录集合记住哪些我标记了的。这样下次直接从已经标记的对象开始遍历。 那这时候只需要黑白二色标记就够了。 但是有几个问题 1.黑色太多了。我需要从很多黑色对象开始找费时麻烦 2.我在把对象18由白色变黑的过程中如果对象7把对象18抛弃了。那我是不是多标了。让本来应该死亡清除的对象18没有被清除。 3.现在堆内存中全都黑了我要清理垃圾了。正要清理的时候对象7突然引用了对象17这时候就会出现漏标的问题。 如何解决呢 思考... 问题1那么能不能有个中间态。把还需要往下扫描的对象变成灰色把不需要继续往下扫描的对象变成黑色。这时候往回看上文的扫描图可以看见灰色节点的集合是非常少的因此每次我只需要从较少的节点开始扫描 好了我手里有两个笔记本了。一个灰色笔记本一个黑色笔记本。 解决了扫描对象过多的问题的同时也能解决STW的时间。 重新想起CMS有四步过程初始标记STW并发标记重复标记STW并发清除四步。 因为重新标记阶段也只需要从灰色节点开始扫描了。因为黑色是确定是活的就算重新标记之后死掉了也最多变成浮动垃圾因为重新标记阶段是STW的所以也不会有引用的变化。 并且只有并发标记的过程才会有引用的变化。 问题2本来应该清除的对象没有被清除这问题不大当成浮动垃圾下一次垃圾回收再扫描一次就行了。多标本质造成浮动垃圾的问题。问题不大。 问题3漏标怎么办不能错杀啊。没有被标记的对象是要被杀掉的。不能被错杀。那么我必须stop the world了STW。 只有停止所有用户线程才能避免我在标记对象的过程中有对象复活了但是没被我标记被活埋了这个很重要。并不是因为三色标记才能避免漏标问题。三色标记只是为了减少STW的时间以及减少遍历树的时间。 很多博客这里压根没讲清楚因果关系。只告诉你三色标记和标记清除算法里有初始标记并发标记重复标记怎么变色多标漏标问题。但是没把问题和解决方案对应起来。 我们都知道CMS有四步初始标记STW并发标记重复标记STW并发清除四步。 我不能从GC-Roots开始遍历的时候就STW一直到并发清除吧。STW这么长那么CMS的意义就不存在了。那么考虑哪些步骤可以与用户线程并发执行。 初始标记将直接与GC-Roots的对象变灰这部分速度很快且不能出错可以STW性价比高。 并发标记需要将对所有灰色节点遍历树结构比较耗时这部分肯定不能STW。 重复标记这部分是最后扫尾工作肯定不能让用户线程来参一脚必须STW。并且修复并发标记时的错误标记把并发标记漏标的白色变灰。 这里很多博客也没说清楚是什么错误。那么我们研究一下并发标记只会让白变灰或让灰变黑。 因为到重复标记时堆内存只有黑白色了。 那么修复错误 让白变灰因为并发标记没有遍历到的对象一直白色并发标记到重复标记开始之前如果有黑色对象引用到了白色对象。那么重复标记需要将白变灰。同时它是STW这时变灰正好解决漏标。 为什么没有让黑变灰正常来说并发标记标记为黑色后但是之后黑色对象如果没有被任何对象引用了。需要将它变灰。但是重复标记只是扫尾工作它是STW的并且需要解决漏标问题。如果此时又让黑变灰那么是否又考虑让灰变白。但是这两步完全可以放到下一轮垃圾回收的并发标记中去做因为并发标记不STW同时也能扫描到灰色对象。这里也是CMS单次回收不能很好解决浮动垃圾的问题他可以解决但是没必要。 之后并发清除可以清除白色对象了。 总结 也就是三色标记法可以区分标记的过程中的粒度从而让垃圾回收器根据不同的标记阶段更好的做出不一样的行为并且对不同的行为采用不一样的STW规则从而减少STW时间增加用户线程运行时间。黑色就是需要活着的对象灰色就是还需要往下遍历的对象白色就是需要清除的对象。三个颜色也是标明了对象处于的扫描阶段。
http://www.hkea.cn/news/14577435/

相关文章:

  • 学完网站建设再可以学什么莱芜热点
  • 什么语言开发网站考研门户网站的建设
  • 网站策划刚学完网站开发
  • 一件代发48个货源网站湖南响应式网站公司
  • 仙桃有哪些做网站的公司百度下载安装2022最新版
  • wordpress主题超限做网站分为竞价和优化
  • 宁波专业做网站软件开发流程解读
  • 安徽东皖建设集团有限公司网站专业的镇江网站建设
  • wap网站实例wordpress代码高亮知乎
  • 浙江网站建设费用有没有专门搞网站上线的公司
  • 新加坡域名注册网站建设网站需要哪些内容
  • 网站修改联系方式网站宣传册怎么做的
  • 门户网站开发jz190落实网站建设培训班精神
  • 东莞南城网站建设公司直接翻译网页的软件
  • 怎样更新网站文章修改wordpress登录框
  • 济南网站建设正规公司哪家好郑州正规的网站制作价钱
  • 创建建站建程网是正规网吗
  • 兴仁市建设局网站在平台企业网站推广怎么做
  • 全网营销型推广网站建设做网站学
  • 正版软件购买网站中卫网站设计
  • 大连做网站qq群wordpress 网站内跳转
  • 做外贸的免费网站有哪些易烊千玺个人网站入口
  • 文化网站策划企业手机网站开通
  • 龙泉市建设局网站郑州鹏之信网站建设
  • 河北省建设监理协会网站教育网站平台建设
  • wordpress改成自己网站代刷网站只做软件下载
  • 合肥网站网页设计网站后台登陆验证码
  • 浙江省专业网站制作网站建设可以做策略回测的网站
  • 如何给网站添加ico如何做分类网站信息营销
  • 做网站注册35类哪几个小项什么网站可以免费发布招聘信息