w
h
y
?
y
o
u
a
r
e
h
e
r
e
?
遇到的问题对于正在运行的程序,当更新动态库尝试重新加载时,可能会导致程序 CoreDump 。
case:我们的一个开发环境中有多个进程依赖同一个动态库.so, 我更新这个so的时候,直接用1cp new.so old.so
导致多个进程同时core,😮😮😮
这里简单解释下其原因,以及规避方
...
概述首先,相较于C语言,C++语言并没有额外增加内存消耗(确切说,在没有虚函数情况下)。 对于一个C++类对象,每个对象有独立的数据成员(非static),但是内存中成员函数只有一份,该类的所有对象共享成员函数。
编译器在编译阶段,进行函数的重构,即将成员函数进行非成员化。通过将this指针作为函数
...
shared_ptr1template< class T > class shared_ptr; (C++11 起)
多个shared_ptr管理同一个指针,仅当最后一个shared_ptr析构时,指针才被delete。这是怎么实现的呢?答案是:引用计数(reference counti
...
hook的并发症可以理解成一个有意思的问题,假如地址 addr1 上有一个函数func1,长度为len, 将这个函数 整体换一个位置,挪到 addr2, 移动之后的函数成为func2
1memcpy(addr2 ,addr1,len );
原来调用 func1 语法是:
1func1(arg1 ,
...
常见的网络游戏同步模型何为网络同步,通俗点讲,就是在一个网络游戏里有玩家A和B同框,当A释放了一个技能,状态发生了变化,B又是如何及时表现A的当前状态的呢,就是通过网络同步技术。不同的同步模型,目的都是为了保持每个客户端的状态一致,而一般客户端的初始状态是相同的,不同的同步模型采用不同的方式,其实就
...
CSAPP
机器级表示汇编
两个抽象
硬件 指令集 ISA 的抽象
虚拟内存 大数组
汇编与高级语言的区别
暴露的可操作
程序计数器 rip
条件寄存器
整数寄存器
ATT 汇编与 intel 汇编区别
intel 省略了 指示大小的后缀
Intel省略了 寄存器前的
...
那些年我们追过的网络库
为什么要用 C++ 编写服务端程序?如果说答案是性能,那么肯定有人会满不在乎。觉得性能不够的话, 只要加机器就可以了。 然而更少的机器,意味着更低的能耗,更少的硬件投入,更少的人力资源投入去维护机器。总而言之,更低的成本。
肯定会有人说,C++的开发速度太慢了。然而这并不是绝
...
概述
首先对于游戏的业务,一般是玩家登陆到大厅,有一些任务、物品、好友、排行榜、聊天这种交互,其次是玩家与玩家之前的匹配与对局。以Moba游戏为例,玩家主要的行为就是登陆后进行匹配,匹配到水平差不多的10个人,分为两队,每组5个人创建对局进行pvp战斗,玩家的操作以指令的方式由客户端发到服务器。 大
...
概述对于大型的工程项目,依赖许多人的配合,包含大量不同的代码库与服务,有的我们能够访问程序的源代码,有的可以访问程序的可重定位文件,有的可以访问到可执行文件及其环境,假如我们想在在不同的层面改变或者添加一些逻辑,操作系统、编译器以及程序语言、代码库等都提供了 一些机制使得 开发者可以 方便的 增加或
...