×
提示:
×
提示:
请:
谢谢!
Toggle navigation
技术头条
最新
读点非技术
我也分享
赞过
我的
IT技术博客大学习
微博登录
1
ECS 中的对象引用
(blog.codingnow.com)
【简介】
我们很难避免在 ECS 系统中相互引用 Entity 。而我对 ECS 模式的使用是鼓励去引用的。为此,我对许多常见依赖引用的模式给了对应的解决方案。
最近的一个 luaecs 开发版本中,提供了一种 Lua 层面的引用方案 :在创建 Entity 时,可以指定一个 table 作为该对象的引用。系统会更新它,让它保持为一个有效的(形如 select 过程中的)迭代器。这样,业务层就可以随时通过它 sync entity 中的数据。
我一直不是太喜欢这个方案,所以一直再考虑不同的解决方法。念念不忘 必有回响。昨天,我尝试了一个新的、更满意一点的方案。
点击查看原文 >>
由
@技术头条
2022-06-19 23:19 / 原作者微博:
@简悦云风
/ 0个评论
赞过的人:
@IT技术博客大学习
要不要再学学下面的文章?
1
真实世界的Go设计模式 - 对象池模式
(colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。
若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。
另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by
@技术头条
2023-09-10 23:38
查看详情
1
Python源码剖析:深度探索Cpython对象
(www.52nlp.cn)
Python是一门备受推崇的脚本语言,以其简单的语法和全面的功能而著称,可快速实现各种业务。本文从 CPython 对象构造器入手,介绍了浮点数对象在 CPython 底层数据结构中的表现形式以及对象创建的过程。通过进一步了解 CPython 动态性的实现方式,读者可望在阅读 CPython 源码后提升编写高质量代码的能力。
by
@技术头条
2023-07-23 11:28
查看详情
1
当谈论引用透明时,我们在说什么
(insights.thoughtworks.cn)
谈论到引用透明(Referential Transparency),我们都会聊函数式编程(FP),会聊Effect和Side Effect,会聊纯函数(Pure Function)等,这些概念相互关联,有时甚至彼此引用定义,能够真正理解它们的含义非常重要。
by
@Thoughtworks
2023-03-22 15:27
查看详情
1
Java 正确获取对象内存地址的方式
(www.awaimai.com)
在本教程中,我们将了解如何在 Java 中查找对象的内存地址。
在此之前,我们需要说明的是,运行时数据区的内存布局不是 JVM 规范的一部分,完全由实现者自行决定。因此,每种 JVM 可能回用不同的策略布局内存中的对象和数组。
在本教程中,我们主要讨论 HotSpot JVM。
by
@技术头条
2022-06-19 23:24
查看详情
1
给 ECS 增加分组功能
(blog.codingnow.com)
目前,我们用 ECS 管理游戏引擎中的对象。当游戏场景大到一定程度,就需要有一个机制来快速筛选出需要渲染的对象子集。换句话说,如果你创建了 100K 个 Entity ,但是只有 1K 个 Entity 需要同时渲染,虽然遍历所有可渲染对象的成本最小是 O(n) ,但这个 n 是 100K 这个数量级,还是 1K 这个数量级,区别还是很大的。
我们的 ECS 系统已经支持了 tag 这个特性,可以利用 visible tag 做主 key 快速筛选可见对象。但当镜头移动时,需要重置这些 tag 又可能有性能问题。重置这些 visible tags 怎样才能避免在 100K 这个数量级的 O(n) 复杂度下工作?
by
@技术头条
2022-06-19 23:07
查看详情
2
你还在new对象吗?Java8通用Builder了解一下
(mp.weixin.qq.com)
这里不再介绍其他 Builder 实现方式,直接祭出最实用的通用Builder:
适用于所有类,不需要改造原来类,不需要 lombok 插件支持。
先看看使用姿势:
by
@code小生
2022-04-10 21:11
查看详情
1
ECS 中同类关联数据的处理
(blog.codingnow.com)
ECS 模式下最难处理的是同类 Component 之间有相互联系的情况。
最方便 ECS 处理的数据是相互独立的,每个数据单元都不和其它数据单元产生联系;如果多个数据单元会有故有的联系时,当可以把它们看作是同一个实体(Entity)下的不同组件(Component)时,那么就可以借用 Entity 的概念来处理它们。我们依旧可以按固定的次序去迭代这些数据。
但是,在复杂系统中,无可避免的,同类数据相互之间也可以产生联系。例如:场景管理中,节点之间有父子关系,计算节点的空间状态的过程对数据的遍历次序有要求。且计算过程还需要访问父节点的状态。解决这类需求是 ECS 框架的一大挑战。
by
@技术头条
2022-02-03 13:12
查看详情
1
卧槽!VSCode竟然可以找对象了!
(mp.weixin.qq.com)
为了用最硬核的方式找到男(女)朋友,23 岁的程序员 Ben Awad 在 VS Code 里打造一个约会软件 VSinder。
by
@code小生
2021-06-20 22:56
查看详情
2
Redis 存储对象信息是用 Hash 还是 String
(zhuanlan.zhihu.com)
Redis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它包含字符串(String)、链表(List)、哈希结构(Hash)、集合(Set)、有序集合(Sorted set)。
by
@又拍云
2021-06-03 09:59
查看详情
1
从此!程序员找对象没那么难了
(mp.weixin.qq.com)
从此!程序员找对象没那么难了,从此!程序员找对象没那么难了,从此!程序员找对象没那么难了
by
@code小生
2021-01-18 15:24
查看详情
使用微博登录,分享你的文章到本站
评论:
提交评论
近一周被赞排行
分享文章被赞得多,您就会出现在上面。还能给您微博带来新粉丝哦!