unity-内存GC

2023-11-05

Unity内存,原生内存(Native Memory)和托管内存(Managed Memory

其中Native Memory大家接触的会比较少,而且可操控性也比较少,例如AssetBundle,Texture,Audio这些所占的内存,这一部分内存是由Unity自身来进行管理的。我们平时开发通常会接触到的是Managed Memory,也就是我们自己定义的各种类

创建内存

第一种new和delete:

Obj *a = new Obj;

delete a;

第二种malloc和free:

Obj *a = (obj *)malloc(sizeof(obj));

free(a);

首先new属于c++的操作符(类似于 +、-等),而malloc是c里面的函数,理论上来讲操作符永远快于函数。

其次new分配成功时,返回的是对象类型的指针,无须进行类型转换,而分配失败则会抛出Exception。而malloc分配成功则是返回void * ,需要通过强制类型转换变为我们需要的类型,分配失败只会返回一个空(NULL)。

然后还有非常重要的一点就是,malloc基本上大家的实现是类似的,new却各有各的不同。我们知道new会去调用构造函数(constructor),所以很多人会把new理解成malloc+constructor,但是这种理解是错误的。因为在c++实现的standard里,你会发现new会不会调用malloc完全由new库的实现来自行决定,也就是说new和malloc是两者独立的。

<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity-内存GC 的相关文章

  • React入门-React的特点,React脚手架搭建工程

    React的特点 轻量 React的开发版所有源码 包含注释 仅3000多行 原生 所有的React的代码都是用原生JS书写而成的 不依赖其他任何库 易扩展 React对代码的封装程度较低 也没有过多的使用魔法 所以React中的很多功能都

随机推荐

  • spring

    spring 解决企业应用开发
  • Axure中引用javascript代码

    Axure支持原生javascript语法调用 Axure中默认的javascript位置存放在Axure安装目录axureRP DefaultSettings Prototype Files resources scripts文件夹下 如
  • Kubernetes 之深入理解 StatefulSet

    文章目录 StatefulSet 的由来 有状态应用 StatefulSet 的设计思想 拓扑状态 Headless Service 如何维持应用实例的拓扑状态 存储状态 Persistent Volume Claim PVC 其实就是一种
  • 安信可蓝牙PB-02 SDK二次开发记录

    目录 1 开发环境 烧录调试 2 例程踩坑 1 编译烧录 watchdog 例程 1 开发环境 烧录调试 详细参考下面两篇教程 安信可PB 01 02模组专题 PB 01 02模组开发板应用 BLE UART固件的使用教程 安信可PB 01
  • Linux系统与管理 - (九)系统初始化进程文件及服务[结]

    目录 自说 学习路径 init进程 systemd进程 服务管理 自说 本章是linux系统与管理的最后一章 系统初始化进程文件与服务管理 其实只要用心 基本知识也就是呢么多 最重要的如何灵活运用 日积月累 以小积多 不断的扩充自己的知识
  • MySQL数据库(九) 集群 Cluster 和性能优化

    文章目录 6 MySQL 集群 Cluster 6 1 MySQL主从复制 6 1 1 主从复制架构和原理 6 1 2 实现主从复制配置 6 1 3 主从复制相关 6 1 4 实现级联复制 6 1 5 主主复制 6 1 6 半同步复制 6
  • JMeter压测,跨线程组传递参数,设置全局变量

    1 测试计划中 勾选独立运行线程组选项 必须勾选 否则不能传参 2 正则表达式取出要传递的参数 3 添加一个BBeanShell 后置处理器 4 setProperty global token token 其中 global token是
  • 不能初始化数据库支持endnote_EndNote正确恢复数据库方法

    EndNote正确恢复数据库方法 EndNote有个恢复数据库功能 Recover Library 当EndNote的数据库Library受损或者打不开时 利用Recover Library可能是最后的一颗救命稻草 但是EndNote的Re
  • 2020-10-31

    实验一 系统环境 Kali Linux 2 Windows网络环境 交换网络结构实验工具 Metasploitable2 需自行下载虚拟机镜像 Nmap Kali WinHex 数据恢复软件等 实验步骤 1 用搜索引擎Google或百度搜索
  • MyISAM 和 InnoDB 讲解

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型 这两个表类型各有优劣 视具体应用而定 基本的差别为 MyISAM类型不支持事务处理等高级处理 而InnoDB类型支持 MyISAM
  • 请求转发和重定向区别

    一 转发和重定向区别详解 作为一名程序员 特别是java web开发的程序员 在使用servlet jsp的时候 我们必须要知道实现页面跳转的两种方式的区别和联系 即转发和重定向的区别 RequestDispatcher forward方法
  • openGLES3.0基本概念

    前言 学习openGL已经有一段时间了 断断续续大概2年左右 发现有些概念还是没有搞清楚 下面记录一下 有空的时候时不时的回顾一下 免得忘记 哎 上年纪了 记性越来越差了 openGLES着色语言 1 version 300 es 声明着色
  • 操作系统是如何启动起来的呢

    https mp weixin qq com s QE9OxBjoIyYjpNVt kXfMw
  • Java基础:Stack基本操作

    StackDemo java import java util Stack public class StackDemo public void showpush Stack
  • 【华为OD机试】计算误码率 (C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • 前端图片处理(一) --- Cropper.js

    Cropper js 介绍 一个纯 JavaScript 的图片裁剪操作插件库 并且是支持移动端的 安装 npm install cropperjs 引入 Cropper 对象 样式 import cropperjs dist croppe
  • linux基线检查

    bin bash version v1 0 by pensar 操作系统linux 配置规范 centos7 mkdir tmp check str1 sbin ifconfig a grep inet grep v 127 0 0 1 g
  • 数据分布图-python 高斯分布三维等高线图像

    创作不易 转载请注明出处 论文的画图的时候 发现别人的图很好看 大概长这样 折腾了半天发现可以用高斯分布模拟 可以设置rv1 rv2 rv3来控制生成的峰的个数 然后根据调整rv的mu和var来控制生成图像的形状 rvs rv rv1 rv
  • C语言基础;求和及平均值

    3 输入三个实数 求出这三个数的和以及平均值 include
  • unity-内存GC

    Unity内存 原生内存 Native Memory 和托管内存 Managed Memory 其中Native Memory大家接触的会比较少 而且可操控性也比较少 例如AssetBundle Texture Audio这些所占的内存 这