自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 c++学习小结

栈区(stack)。编译器⾃动分配与释放,主要存放函数的参数值,局部变量值等,连续的内存空 间,由⾼地址向低地址扩展。堆区(heap)。由程序员分配与释放;不连续的空间,通过空闲链表进⾏连接。堆是低地址向⾼ 地址扩展,空间较⼤。频繁地分配和释放不同⼤⼩的堆空间将会产⽣堆内碎块。静态存储区。存放全局变量和静态变量;分为全局初始化区和全局未初始化区。常量存储区。存放常量字符串;对于全局常量,编译器⼀般不分配内存,放在符号表中以提⾼访问 效率。程序代码区。存放函数体的⼆进制代码。

2025-04-26 21:23:44 742

原创 容器化技术

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

2025-04-08 16:04:12 616

原创 面试常考算法

一般一些大厂面试都会以一个算法题结尾 那么笔者总结了下哪些类型的算法会比较常考。

2025-04-05 22:26:14 33

原创 常用中间件合集

Nginx是一个 轻量级/高性能的反向代理Web服务器,他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发事件处理机制:异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决Nginx 的核心特性​高并发处理支持高达 ​50,000 个并发连接,通过 ​Master-Worker 进程模型实现:​Master 进程:负责管理 Worker 进程,接收信号并监控状态​Worker 进程:单线程异步非阻塞处理请求,采用 ​或 ​。

2025-04-02 15:19:52 1027

原创 游戏服务器架构

游戏服务器的架构经过多年的迭代 笔者通过自己做的游戏和思考 将服务器的架构分为以下三种情况全服单进程(全部玩家全部逻辑都在一个进程内处理 一个进程就是一个服务器)分区多进程(有多个相同的进程 每个进程是一个服务器 每个进程处理全部的逻辑 玩家在创号时选择一个服务器 之后就跟这个服务器也就是进程绑定)微服务(全区同服 没有分区的概念 将游戏中的每个模块 或者说每个模块拆成一个一个进程或者叫服务)

2025-04-01 15:25:16 330

原创 游戏登陆和支付

在游戏开发中 登陆和支付是比较特殊的模块 这涉及到第三方sdk的调用一般来说公司中台都会封装好sdk给客户端调用 客户端调用公司对应的sdk来完成登陆和支付。

2025-03-31 23:19:24 146

原创 游戏活动框架

经常玩游戏的人应该发现 几乎大部分游戏都有各种各样的活动玩法对于开发者来说这些活动除了自身活动的逻辑不相同 有个相同点就是通过策划的配置来控制活动的开启和关闭那么就需要一套框架来实现这种。

2025-03-31 17:08:39 483

原创 游戏任务框架

几乎每个游戏都会有任务,比如主线任务,支线任务,师门任务,活动任务等等在游戏设计中就需要一套任务框架去实现各种任务,让任务系统能够灵活的扩展。

2025-03-31 16:37:13 444

原创 唯一id的生成方式

游戏中需要唯一保证一些唯一性 比如玩家id 道具id等 这些可以自增+1 还有一些比如支付订单需要复杂点的唯一id以下有几种唯一id的生成方式。

2025-03-30 23:20:12 385

原创 游戏战斗同步机制

基本上大部分游戏都有战斗战斗的同步机制无非两种 状态同步和帧同步帧同步当中笔者还了解过一个分支(帧校验)

2025-03-30 17:01:11 758

原创 游戏排行榜

对于大部分游戏来说 基本上都是有排行榜的 排行榜的作用更多的是激发玩家之间攀比的心理 从而促进玩家的动力 所以排行榜是游戏不可缺少的一部分排行榜数据更新一般分两步1更新玩家的数据2排序。

2025-03-29 22:40:05 513

原创 游戏大世界AOI广播算法

游戏中的AOI(Area of Interest,感兴趣区域)算法主要用于管理场景内实体的可见性及事件广播,以优化性能和同步效率。核心上都是将一张地图上当多个玩家之间的数据进行广播时从单个线程的处理压力 需要广播的玩家的数量上进行区分和优化。

2025-03-29 15:37:47 375

原创 操作系统学习小结

这 5 个部分也被称为。

2025-03-27 15:38:45 665

原创 kafka学习小结

Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域是 一个开源的 分 布式事件流平台 (Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

2025-03-23 20:13:14 826

原创 golang常见框架

节点结构:前缀树的每个节点代表一个字符,从根节点到某个节点的路径上经过的字符连接起来,就构成了一个字符串。压缩机制:为了节省空间和提高查找效率,Gin 对前缀树进行了压缩,将连续的字符压缩成一个节点,而不是每个字符一个节点。路由匹配:在进行路由匹配时,从根节点开始,根据请求的路径依次匹配节点,直到找到匹配的路由或者匹配失败。

2025-03-20 14:59:20 1232 4

原创 编程语言的安装详解

对于编译型语言来说会安装编译器 解释型语言会安装解释型 因为计算机最终执行的是机器语言代码 程序员写的是源代码 需要把源代码翻译成机器语言。

2025-02-26 19:27:56 276

原创 vim常用指令

h:向左j:向下k:向上l:向右shift+h:屏幕最顶部shift+l:屏幕最底部shift+m:屏幕中间w:下一个单词b:前一个单词e:词尾shift+^:行首shift+$:行尾ctrl+f:向下翻页ctrl:b:向上翻页a:在当前插入shift+a:在行尾插入。

2024-06-29 17:24:33 188

原创 mac使用coscmd

配置。

2024-06-15 14:49:33 463

原创 值传递引用传递指针传递的区别

传递的函数变量b的地址为0x2 并不等于a的地址 但值等于a的地址0x1 也就是b的值保存的是a变量在内存中的地址 那么b要修改值时会返回a地址并且修改对应的值。传递的函数变量b的地址为0x1 等于a的地址 所以值也等于1 换句话说a就是b 但是一般编程语言都没有这种写法 在php中就可以实现指针传递。先说个概念 一个变量有两个基本属性 一个是在内存中的地址adress 一个是内存中这个地址上记录的值value。传递的函数变量b的地址为0x2 并不等于a的地址 但值相同 都是1。第一个值是在内存中的地址。

2023-09-14 19:41:09 78

原创 分布式事务

是应用层的两阶段提交,所以对代码的侵入性强,其核心思想是:针对每个操作,都要实现对应的确认和补偿操作,也就是业务逻辑的每个分支都需要实现 try、confirm、cancel 三个操作。所有参与节点都是事务阻塞性的,当参与者占有公共资源时,其他第三方节点访问公共资源就不得不处于阻塞状态,为了数据的一致性而牺牲了可用性,对性能影响较大,不适合高并发高性能场景。② 收到协调者的 commit 请求后,参与者正式执行事务提交操作,并释放在整个事务期间内占用的资源。将事务的提交过程分为资源准备和资源提交两个阶段。

2023-06-20 13:27:17 77

原创 编译过程小结

编程语言分为编译型和解释型针对编译型语言谈下编译过程编译过程主要是编译和链接过程编译分为词法分析,语法分析,语义分析,中间代码生成(四元式),代码优化,目标文件生成目标文件一般有代码段和数据段组成目标文件一般有三种,可重定位文件,共享目标文件,可执行文件编译过后就是链接可分为静态链接(实际上是一个目标文件的集合)和动态链接(只是在最终的可执行程序中记录下共享对象的名字以及其它少量的登记信息)

2023-06-19 21:15:13 68

原创 mongodb小结

此集群拥有一个主节点和多个从节点,这一点与主从复制模式类似,且主从节点所负责的工作也类似,但是副本集与主从复制的区别在于:当集群中主节点发生故障时,副本集可以自动投票,选举出新的主节点,并引导其余的从节点连接新的主节点,而且这个过程对应用是透明的。另外,每个从节点要知道主节点的地址,主节点记录在其上的所有操作,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以存储更多的数据,处理更大的负载。

2023-06-17 22:49:59 154

原创 golang学习小结

heap分成多个大小为64mb的arena arena里在分成67种span。gmp模型当中p作为一个分配器 给本地队列种的g分配m来获得cpu的执行。每种span的各自有多个相同大小的page 组成 最小的page为8B。分为heap arena span page。map是否并发安全 sync. map。channel 关闭 有无缓存。每个p有一个mcache。全局有一个mcentol。context有什么用。go实现自主管理内存。

2023-06-15 21:28:10 149

原创 redis学习小结(面试常见知识点)

redis是一个key-value的nosql数据库 数据都在内存数据类型有 string list hash set zset底层实现的数据结构有 简单动态字符串 双向链表 压缩列表 哈希表 跳表 整数数组动态字符串SDS 有三个字段双向链表压缩列表压缩列表(ziplist)是Redis为了节省内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以包含任意多个节点(entry),每个节点可以保存一个字节数组或者一个整数值。哈希表链地址法。

2023-06-08 23:32:47 87

原创 mysql学习总结

经过对Mysql的学习自身得出一些总结和重点内容。

2023-06-07 15:40:09 347

原创 计算机网络学习小结

物理设备有路由器 路由器是更高交换机,作用在网络层,能识别ip地址 网关 当两个主机的网段不同时,之间的信息传输就要先经过对方的网关 一般由路由器作为网关 路由器一段可以是公网ip 另一端是内网ip。子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。中继器,集线器作用在物理层,集线器下连接的主机都是在同个网段下的,全部主机都在同个冲突域下。实现网络上主机进程之间的通信 有可靠和不可靠传输。

2023-04-14 17:45:46 167 2

原创 golang学习的一些坑

3如果没有在for循环里增加元素,而且改变元素的值或者删除元素,那么循环打印出来的值就是最新的切片里的值,那么如果删除了元素,但是for循环的次数又等于最原先切片的元素的个数,这个时候是怎么样呢,这个时候打印出来的值还是最原先切片里对应索引的值。2如果在for循环里给切片增加了元素 那么之后不管是改变了切片里元素的值还是删除了元素,循环打印出来的值都是原先切片的值不会发生改变。1首先for循环的次数就是最开始切片的元素个数 不会因为之后在循环体里增加或者删除元素个素而变换。

2023-03-10 15:15:11 477 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除