自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 lua 错误处理

xpcall 与 pcall 类似,也是 Lua 中用于进行受保护调用的函数,但是它提供了更强大的错误处理机制。总的来说,pcall 用于处理函数调用可能出现的错误,而 assert 用于在特定条件不满足时终止程序执行。pcall: 用于在调用函数时捕获可能发生的错误,并在出现错误时返回 false 以及错误消息,而不终止程序的执行。assert: 用于在条件不满足时抛出错误并终止程序的执行。assert 在条件为假时会抛出一个错误并终止程序的执行,通常用于确保函数的参数或返回值满足某种条件。

2024-04-14 19:06:04 228 1

原创 lua协程相关

在这个过程中,Lua虚拟机的执行指针指向了调用yield的协程的调用点。在Lua中,协程(coroutine)是一种轻量级的线程,可以被挂起(通过yield)和恢复(通过resume)。当协程执行到yield语句时,它会被挂起,而挂起的协程状态会被保存在Lua虚拟机中的堆栈中。从操作系统的角度来看,整个Lua虚拟机就是一个单独的进程,而协程的挂起和恢复都是在Lua虚拟机内部进行的。当调用resume时,Lua虚拟机会恢复之前保存的协程状态,并将执行指针重新定位到上次执行的位置。

2023-12-08 16:22:51 31

原创 游戏服务器宕机原因

此外,实施健壮的错误处理和异常处理机制,以及定期进行性能优化和安全审查,有助于提高游戏服务的稳定性和可靠性。资源耗尽: 如果服务器上的某些资源,如文件描述符、线程等,被耗尽,游戏服务可能无法创建新的资源,从而宕机。代码错误: 编写的代码中可能存在错误,例如逻辑错误、算法错误等,这些错误可能导致程序无法正常执行。恶意攻击: 恶意攻击,如拒绝服务攻击(DDoS)等,可能导致服务器超负荷,无法正常处理请求。硬件故障: 服务器硬件故障,如硬盘损坏、内存故障等,可能导致游戏服务宕机。

2023-12-03 17:12:29 71 1

原创 lua遍历删除table中的元素出现问题及解决方法

在Lua中遍历并删除table中的元素可能会导致意外行为和错误,因为在遍历过程中修改table可能会破坏循环的状态或导致不一致的结果。这是因为Lua中的表是动态的,删除一个元素会导致其他元素的索引发生变化。可以使用上述方法来减少潜在的问题。解决方法:考虑使用一个新table来存储要删除的元素,然后在遍历完成后一次性删除它们,以避免影响嵌套循环。遍历索引问题:删除一个元素后,后续元素的索引可能会发生变化,导致某些元素被跳过或多次处理。无限循环问题:如果在循环中删除元素而不更新循环计数器,可能会导致无限循环。

2023-10-09 17:50:19 624 1

原创 c++ static,const修饰指针

2.静态成员函数只能访问静态成员变量。1.所有对象共享同一份数据。1.所有对象共享同一个函数。3.类内声明,类外初始化。2.在编译阶段分配内存。

2023-08-31 12:27:45 67

原创 select和epoll

最大只能支持1024个文件描述符,每次使用都需要把文件描述符集合从用户态拷贝到内核态,开销很大,而epoll,没有了文件描述符的限制,只在注册的时候拷贝没有添加的文件描述符到红黑树上,使用回调函数来返回数据,效率大大提高。一个游戏服务端通常连接着成百上千的客户端,而某一时刻可能只有少数客户端在发消息,对于单个客户端,服务端读不到数据的概率较大,因此会造成CPU算力的浪费。轮询是一种最简单的多路复用机制,以接收数据为例,指的是网络线程循环不断地、非阻塞地读取数据,若有数据则进行处理,若没有数据则跳过。

2023-08-31 09:55:12 54

原创 服务端排查线上问题(skynet,Java)

stat:stat指令用于列出所有Lua服务的CPU时间、处理的消息总数 、消息队列长度、被挂起的请求数量 (等。如图2-29所示,每个服务都含有消息队列,向服务发消息,就是将消息插入消息队列的过程,如果某个服务处理消息的速度太慢,它的消息队列就会很长。load average :当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程。%CPU : 执行命令时候进程占用的CPU百分比。

2023-08-10 12:23:40 323 2

空空如也

空空如也

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

TA关注的人

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