相关分享
Go中秘而不宣的数据结构: 四叉堆,不是普通的二叉堆
文章讲解了 Go 语言定时器底层实现中四叉堆的设计原理,解释其在 Go 运行时的作用。通过使用四叉堆(4-ary heap)替代二叉堆,优化了定时器性能,特别是在高并发场景中。
适合人群:Go 语言开发者及对运行时机制、高性能定时器实现感兴趣的工程师。
Go中秘而不宣的数据结构: 四叉堆,不是普通的二叉堆
文章介绍了 Go 语言中定时器使用的四叉堆数据结构,分析其相较于二叉堆的优势,如降低堆高度以提升性能,并回顾了 Go 不同版本中定时器实现的演进过程。适合对 Go 语言运行时实现细节、数据结构优化及并发编程感兴趣的开发者阅读。
Go中秘而不宣的数据结构 CacheLinePad:精细化优化
这篇文章深入解析了 Go 语言中的 CacheLine 数据结构,详细探讨了其在多核环境下的内存对齐、伪共享问题以及性能优化方法。通过具体的代码示例和实验分析,文章展示了如何利用 CacheLine 提升并发程序的性能。内容专业且实用,对开发高性能 Go 应用的工程师有很高的参考价值,值得推荐阅读和分享。
Go中秘而不宣的数据结构 Treap:随机化的二叉搜索树
这篇文章详细解析了 Go 语言中 Treap 数据结构的实现和应用。内容涵盖了 Treap 的设计思想、核心算法以及在实际场景中的使用案例,还深入探讨了平衡二叉树与堆的结合特点及其性能优势。对于希望了解 Go 内部实现或探索高效数据结构的开发者,这篇文章提供了丰富的干货和学习价值,值得推荐。
Go中秘而不宣的数据结构 BitVec, 资源优化方法之位向量
如何深入理解 Go 的内部数据结构?文章以 BitVec 为例,详细解析了其设计原理、实现方式以及在不同场景中的应用,还探讨了相关的性能优化策略和工程实践。这是一篇高质量的技术解读,为开发者学习 Go 的底层实现提供了宝贵的参考!
HTML MicroData微数据结构简介
MicroData微数据相关的知识适用于对SEO非常重视的产品,且主要针对谷歌、微软、雅虎等国外的搜索引擎,适用场景较为小众,因此,本文内容大致了解下即可。
所谓微数据,就是在原有的HTML元素基础上,通过设置若干专门给机器识别的HTML属性,让搜索引擎可以更好地理解这一块的数据。在具体展开介绍之前,有必要先介绍https://schema.org/这个网站,准确说这是一个开源协作的社区组织,由谷歌、微软、雅虎和Yandex创建,致力于在互联网、网页、电子邮件等平台上创建、维护和推广结构化数据的模式。
有序数列的数据结构优化
在我们的 ecs 模块中,有一个重要的内部数据结构是 eid 的数组。它是 Component 结构的一部分,表示每个 Component 属于哪个 Entity 。目前,它是以一个有序的 id 数组实现的。
这个数据结构常见的操作分别是:遍历、随机访问、查找 id 所在的位置。一个有序数组可以很好的完成任务。O(1) 的随机访问时间,O(Log N) 的查找时间。
那么实际上呢?
Redis 核心数据结构(二)
在上一篇文章: Redis 核心数据结构(1) 中,介绍了链表、ziplist、quicklist 数据结构。这篇文章,来介绍一下 skiplist、dict。
skiplist 跳跃表是一种有序数据结构,支持平均 O(logN)、最坏 O(N) 复杂度的节点查找;大部分情况效率可以和平衡树相媲美,实现却比平衡树简单。
跳跃表就是 Redis 中有序集合键的底层实现之一。
Redis 核心数据结构(一)
Redis 目前是使用最广泛的缓存中间件。其突出特点就是支持多种常见的数据结构。对比 JDK 集合类的实现,Redis 的实现表现出很多独到之处,很多地方设计得别具匠心。下面就来简要介绍一下。
深入剖析 Spring 核心数据结构:BeanDefinition
林纳斯·托瓦兹(Linus Torvalds)说:“我从心底认为,优秀的程序员与平庸的程序员之间的区别,是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码,优秀的程序员则关注数据结构及之前的关系。” 也许很多人觉得 Spring 神秘莫测,但是如果了解了它的核心数据结构,很多问题迎刃而解。
Spring 中两个数据结构最核心:① BeanDefinition,用于表示 Bean 的定义;② BeanFactory,用于表示整个 IoC 容器。
