zoukankan      html  css  js  c++  java
  • 第十六节:大对象

    还有另外一个性能提升举措值得注意。任何85000字节或更大的对象都被自动视为大对象。大对象从一个特殊的大对象堆中分配。这个堆中的对象采用和前面讨论过的小对象一样的方式终结和释放。但是,大对象永不压缩,因为在堆中下移85000字节内存块是浪费太多的CUP时间。但是,在写代码时,永远都不要假设大对象是不移动的,因为大对象的起始大小将来可能就不再是85000字节了。要百分之百保证对象在内存中不移动。

    大对象总是被认为是第2代的一部分,所以只能为需要长时间存活的资源创建大对象。如果分配短时间存活的大对象,将导致第2代被更频繁的回收,这会损害性能。以下程序证明大对象总是在第2代中分配的:

    Object OBJ = new Byte[85000];

    Console.WriteLine(GC.GetGeneration(OBJ));

    所有这些机制对于我们应用程序来说都是透明的。在开发人员面前,好像只有一个托管堆;这些机制的唯一目的就是提升应用程序性能。

  • 相关阅读:
    Centos7安装redis
    Cookie和Session的区别
    JavaWeb中的域对象
    ServletContext使用介绍
    Java Web核心组件之Servlet的使用介绍
    关于反射的杂谈
    leetcode117search-in-rotated-sorted-array
    23longest-consecutive-sequence
    leetcode24:word-ladder-ii
    leetcode25word-ladder
  • 原文地址:https://www.cnblogs.com/bingbinggui/p/4467730.html
Copyright © 2011-2022 走看看