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

武汉网站制作哪家强友情链接的概念

武汉网站制作哪家强,友情链接的概念,怎么做淘宝联盟网站推广,建网站要注意些什么SemiSpace的管理新生代内存的类,即我们常听到的from区和to区。from区和to区都由一个SemiSpace对象管理。SemiSpace只管理地址,不负责分配和释放管理的内存。下面是Semispace类的定义。 class SemiSpace BASE_EMBEDDED {public:SemiSpace(int initial_c…

SemiSpace的管理新生代内存的类,即我们常听到的from区和to区。from区和to区都由一个SemiSpace对象管理。SemiSpace只管理地址,不负责分配和释放管理的内存。下面是Semispace类的定义。

class SemiSpace  BASE_EMBEDDED {public:SemiSpace(int initial_capacity, int maximum_capacity);bool Setup(Address start, int size);void TearDown();bool HasBeenSetup() { return start_ != NULL; }bool Double();Address low() { return start_; }Address high() { return low() + capacity_; }Address age_mark() { return age_mark_; }void set_age_mark(Address mark) { age_mark_ = mark; }// 判断地址a是否在该对象管理的内存中,&address_mask即让a减去size-1的大小。如果等于start说明在管理范围内bool Contains(Address a) {return (reinterpret_cast<uint32_t>(a) & address_mask_) == reinterpret_cast<uint32_t>(start_);}// 类似上面的逻辑,但是堆对象低位是标记,判断时候需要处理一下,加SetUpbool Contains(Object* o) {return (reinterpret_cast<uint32_t>(o) & object_mask_) == object_expected_;}// 距离开始地址的pint SpaceOffsetForAddress(Address addr) { return addr - low(); }private:int capacity_;int maximum_capacity_;Address start_;Address age_mark_;// 见SetUp函数uint32_t address_mask_;uint32_t object_mask_;uint32_t object_expected_;public:TRACK_MEMORY("SemiSpace")
};

下面是SemiSpace类的实现。

SemiSpace

新建一个SemiSpace对象的时候默认初始化某些字段。这些字段的真正设置在SetUp函数。

SemiSpace::SemiSpace(int initial_capacity, int maximum_capacity): capacity_(initial_capacity), maximum_capacity_(maximum_capacity),start_(NULL), age_mark_(NULL) {
}

Setup

Setup函数是初始化SemiSpace对象属性的函数

// 设置管理的地址范围
bool SemiSpace::Setup(Address start, int size) {ASSERT(size == maximum_capacity_);// 判断地址的有效性if (!MemoryAllocator::CommitBlock(start, capacity_)) return false;// 管理地址空间的首地址start_ = start;// 低于有效范围的掩码,即保证相与后的值小于等于管理的地址范围address_mask_ = ~(size - 1);// 计算堆对象地址掩码,低位是标记位,判断的时候需要保留,kHeapObjectTag是堆对象的标记object_mask_ = address_mask_ | kHeapObjectTag;// 见contains函数,对象地址里低位是标记位,判断的时候需要带上object_expected_ = reinterpret_cast<uint32_t>(start) | kHeapObjectTag;// gc相关age_mark_ = start_;return true;
}

TearDown

重置SemiSpace管理的地址,但不负责释放内存。

void SemiSpace::TearDown() {start_ = NULL;capacity_ = 0;
}

Double

“扩容”函数,只不负责内存的分配,只对管理的大小进行扩容。

bool SemiSpace::Double() {// 内存在其他地方分配了,这里校验地址是否合法,即是否分配了if (!MemoryAllocator::CommitBlock(high(), capacity_)) return false;capacity_ *= 2;return true;
}

SemiSpace的功能比较简单,有些属性的使用后续用到的时候再分析。

http://www.lbrq.cn/news/2569267.html

相关文章:

  • 郑州高端网站制作武汉网络推广网络营销
  • 网站标题作弊详解龙岗seo网络推广
  • o2o网站开发公司搜狗指数
  • 常州网站建设平台搜索引擎调词软件
  • 重庆南岸营销型网站建设公司哪家专业长春网站优化方案
  • 宁夏建设网站百度搜索引擎官网入口
  • 电子商务网站建设实训方案sem营销推广
  • 个人建站赚钱站长工具永久
  • 邯郸网站建设推广网站seo策划方案
  • 地产网站建设互动营销网站推广方法
  • 武汉光谷做网站价格网络营销的四大基础理论
  • 外贸网站 万网快排seo排名软件
  • 做网站后台数据库建设跨境电商平台注册开店流程
  • 游戏网站seo怎么做开鲁网站seo
  • 网站建设制作找哪家公司免费建站免费推广的网站
  • 怎么为自己的厂做网站适合女生去的培训机构
  • 软件商店免费下载seo网站排名推广
  • 团购网站为什么做不走seo新人怎么发外链
  • 日照市建设信息网站网站seo优化检测
  • 有一个做ppt的网站首页排名seo
  • 做推文的网站免费搜索引擎入口
  • 做五金国际网站哪个好微信加人推码35一单
  • apache 配置wordpress长春seo培训
  • 贸易公司网站制作百度投诉中心热线
  • 博客类网站建设线上引流线下推广方案
  • 图文广告设计seo每日
  • 搭建平台聚合力网站seo文章该怎么写
  • wordpress5.0后台慢免费seo培训
  • html5 网站平台今日热搜榜官网
  • 内网建站软件百度做广告多少钱
  • 【05】OpenCV C#——OpenCvSharp 图像基本操作---转灰度图、边缘提取、兴趣区域ROI,图像叠加
  • ubuntu22.04系统入门 linux入门(二) 简单命令 多实践以及相关文件管理命令
  • Android使用MediaProjectionManager获取游戏画面和投屏
  • 60 GHz DreamHAT+ 雷达已被正式批准为“Powered by Raspberry Pi”产品
  • npm报错:npm install 出现“npm WARN old lockfile”
  • 【计算机网络】5传输层