自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The Coding World

其实生命就是一个过程,到最后一天你啥也带不走,精彩的是你留下什么。

  • 博客(418)
  • 资源 (5)
  • 问答 (4)
  • 收藏
  • 关注

原创 记录个人学习网址

遗传算法入门地址:blog.csdn.net/zzwu/article/details/561577

2015-03-05 23:41:36 822

原创 游戏服务器开发工具

这里主要总结Memcached网络相关的主要流程Memcached使用的是一个main_base轮训监听客户端,然后分发到其他线程进行处理

2022-10-21 12:08:11 629

原创 git 常见提交慢或者卡住处理

git 提交很慢或者卡住writing objects的解决方法git config --global http.postBuffer 5242880000git更新或提交中途有时出现The remote end hung up unexpectedly的异常git config --global http.lowSpeedLimit 0git config --global http.lowSpeedTime 999999fatal: Out of memory, malloc fa

2021-06-21 19:46:22 12680

原创 docker启动redis|mysql服务

docker pull redisdocker pull mysql拉取redis、mysql 镜像docker 启动 redis 服务docker run # -itd (i)以交互模式运行容器,通常与 -t 同时使用 (t)为容器重新分配一个伪输入终端,通常与 -i 同时使用(t)后台运行容器,并返回容器ID-p 16379:6379 # 端口映射--name redis_26379 # 容器名称-v /docker/redis/redis.conf:/etc/r...

2021-04-22 15:17:51 774

原创 常用linux命令记录

=========================================================================================strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。演示:str

2021-02-07 16:38:41 189

转载 深入理解Protobuf3协议原理

Protobuf是什么全称为Protocol Buffers,Google推出的序列化框架,用于将自定义数据结构序列化成字节流,和将字节流反序列化为数据结构,该框架不依赖开发语言,也不依赖运行平台,扩展性好,目前支持的语言比较多,包括Java,C++,Python,Ruby等。使用Protobuf在这里使用Windows和Java进行实例演示: 先去github.com/protocolbuf…把protoc-3.11.0-win64.zip下载下来,然后解压,找到bin目录,cmd进去b

2021-01-21 15:39:57 1222

转载 深入理解Lua虚拟机

原文地址:https://www.cnblogs.com/kekec/p/11768935.html为了达到较高的执行效率,lua代码并不是直接被Lua解释器解释执行,而是会先编译为字节码,然后再交给lua虚拟机去执行lua代码称为chunk,编译成的字节码则称为二进制chunk(Binary chunk)lua.exe、wlua.exe解释器可直接执行lua代码(解释器内部会先将其编译成字节码),也可执行使用luac.exe将lua代码预编译(Precompiled)为字节码使用预编译的字

2021-01-10 15:40:11 899

原创 解决vscode安装go插件失败问题

使用go mod 代理cmd 执行go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.io,direct打开vscode按ctrl+shift+p 调出命令面板,输入go install tools 选Go: Install/Update Tools

2021-01-08 13:54:40 1045

原创 lua性能分析工具实现

参考:https://zhuanlan.zhihu.com/p/24873676 --- lua代码性能分析工具-----------------------------------------------------------------------------------------local tinsert = table.insertlocal tsort = table.sortlocal clock = os.clocklocal sformat = string.for

2020-12-31 19:17:12 782

原创 设计模式学习-状态模式

一般玩家角色会有很多状态行为,并且多个状态会在不同情况下进行转换。一般状态很少很简单的化,可以利用switch 罗列状态,类似于下面实现: for (;;) { switch (state) { case DUCK: // 躲避 state = RUN; Do(); break; case RUN: // 跑 state = RUN; Do(); break; case JUMP: // 跳跃 state = RUN;

2020-12-07 21:21:34 117

转载 Mysql-索引知识点汇总

接下来一段时间内我会整理一些关于mysql的一些知识,做一个mysql的专题,也算是自己回顾的笔记,欢迎关注。Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。例如在一个亿的数据中查找是否存在一个数,有几种方式? 顺序查找,那需要一亿次才能找到 ...

2020-12-03 17:26:48 258 1

原创 c++ 实现函数进入退出记录

#pragma once#include <functional>template<class T>class GuardCls{public: using param_t = typename std::conditional<std::is_reference<T>::value || std::is_pointer<T>::value, T, T&>::type; using func_t = std::functi.

2020-12-02 14:55:34 446

原创 c++实现流式写日志

#include <iostream>#include <sstream>class logstream{public: template<typename T> inline logstream& operator<<(const T& log) { m_oss << log; return *this; } inline logstream& operator<<(std::ost.

2020-12-02 14:18:02 744 1

原创 windows环境下配置mysql服务记录

1.到官网:D:\mysql-5.7.21-winx64\bin下载2.解压到D盘(个人喜欢):D:\mysql-5.7.21-winx643.配置环境变量,path:D:\mysql-5.7.21-winx64\bin4.检查D:\mysql-5.7.21-winx64\my-default.ini文件的以下两个配置路径是否正确[mysqld]basedir=D:\mysql-5.7.21-winx64datadir=D:\mysql-5.7.21-winx64\data based...

2020-08-21 14:30:27 286

原创 服务器端游戏场景优化

对于mmo类游戏,场景往往是游戏的性能瓶颈,优化场景逻辑是游戏开发工作中必不可少的工作。最好是前期开发阶段,就能解决掉场景性能热点,否则后期很难改动。游戏场景主要优化场景内消息的分发处理。尤其是场景内玩家的移动。如果100人在场景内同时移动,就要相互转发100,就要产生100*100个移动包。很多视野外的人其实是不需要知道你的位置,或者你不要看到视野外的人位置,所以首先去掉大量无效的包发送是关键。游戏中对场景移动处理往往分两种,1、按照地图网格移动,一般只需要发送几个拐点就可以(可以利用recast

2020-08-14 15:14:08 512

原创 python 实现cmd输入指令

python 利用cmd库实现模拟终端指令输入###########################################################import cmdimport subprocessimport sysfrom robot import *############################################################# def parse(arg):# return tuple(map(int, a

2020-08-14 14:11:19 2304

原创 vscode 设置 lua开发环境

1、vscode 安装lua Debug 插件2、安装lua (lua language support visual studio code)插件3、添加lua 调试配置:{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurati

2020-08-04 22:44:32 7456 1

原创 windows 安装使用luarocks

1、下载安装mingw32-gcc下载地址:https://osdn.net/projects/mingw/releases/p15522安装mingw-get-setup.exe选择 勾选 g++ ,然后 点击Installation->Apply Changes安装完成之后,将安装目录添加进环境变量path 里2、下载 lua,官网有编译好的lua下载地址:http://luabinaries.sourceforge.net/download.html解压,将解压目..

2020-08-04 17:11:47 2238

原创 c++ 实现对象池

c++ 简单实现一个管理对象池ObjPool.h#pragma once#include <iostream>#include <queue>#include <memory>using namespace std;static constexpr int32_t pool_step = 3;template<typename T>class ObjPool{ using shared_obj_t = shared_ptr&lt

2020-05-26 15:05:39 378

原创 基于事件驱动网络服务器实现

socket 的事件类型有 读事件(socket链接也属于读事件)、写事件、socket 关闭事件事件处理方式无非就是添加事件、删除事件、分发执行事件大致逻辑就是:事件驱动的网络实现逻辑while(true): EventOp->dispatch() // 由 select或epoll 进行事件监听 将监听的事件添加到事件列表里 for(ev : event_list): if ev & ev_read && fd 是...

2020-05-17 22:15:03 465

原创 c++ 获取socket接收缓存大小

#ifdef SF_PLATFORM_WIN u_long readn = DEFAULT_SOCKET_READ_LEN; if (sf_ioctlsocket(fd, FIONREAD, &readn) < 0) return -1; return (int)readn;#else int n = DEFAULT_SOCKET_READ_LEN; if (sf_ioctlsocket(fd, FIONREAD, &n) < 0) return -1; .

2020-05-17 21:49:30 1062

原创 c++ filesystem 使用

string path = "./"; for (auto it : directory_iterator(path)) { cout << it.path() << endl; } if (exists(path)) { cout << "path exist" << endl; } directory_entry entry(path); if (entry.status().type() == file_type::direc..

2020-05-17 21:40:57 1508

原创 c++完整实现地图寻路A星算法

A星寻路算法的讲解有很多,这里不再论述,只给出实现程序。AStar.h#pragma once#include <vector>#include <map>#include <queue>// 二维地图A*算法实现const int OBLIQUE = 14; // 斜线移动权重为14const int STEP = 10;struct Point{ Point(int id, int reachable); ~Point(); v

2020-05-15 22:52:07 2803

转载 unity3d 学习资料

Unity官方教程合集入门级别:滚动小球教程 (Roll-a-ball tutorial) -https://www.bilibili.com/video/av31982623太空射击游戏 (Space Shooter tutorial) -https://www.bilibili.com/video/av17763657生存射击游戏 (Survival Shooter tutor...

2020-03-17 15:51:56 322

原创 c++与游戏开发学习书籍推荐

书籍:《C++ Primer》《数据结构与算法分析:C语言描述》《算法设计与分析基础》《Linux高性能服务器编程》《Linux多线程服务端编程》《PC游戏编程:网络游戏篇》《游戏引擎架构》《2018腾讯移动游戏技术评审标准与实践案例》《虚拟机的设计与实现C/C++》代码:DOOM3 源码chrome 源码redis 源码libevent源码...

2020-02-08 01:45:25 1719

原创 linux 设置core 生成及命名 路径

linux下设置coredump文件的开关和路径ulimit -c unlimited 不限制生成core文件大小ulimit -c 0 关闭core文件生成开关ulimit -c 1024 限定生成core文件的大小为10242.core文件的命名规则/proc/sys/kernel/core_uses_pid 1 表示使用procid命名,0表示不使用/proc/sys/kern...

2020-01-22 11:04:54 799

原创 日志输出 __FIFL__输出路径太长处理

程序log日志打印时 __FIFL__输出路径太长处理windows项目属性-》c/c++ -》所有选项使用完全路径 否 调试信息格式 程序数据库(Zi)Linux如果是使用CMAKE编译的,在CMakeLists.txt中添加这么一行(C++语言需要将CMAKE_C_FLAGS换成CMAKE_CXX_FLAGS)set(CMAKE_C_FLAGS "${CMAKE_C_...

2020-01-21 13:26:53 657

原创 游戏开发之玩家角色属性

本篇的内容源自 PC游戏编程:网络游戏篇玩家角色有基本属性和扩展属性之分基本属性:ATTR_STR 1 //力量ATTR_CON 2 //体质ATTR_DEX 3 //敏捷ATTR_INTE 4 //智力ATTR_KNOW 5 //知识基本扩展属性ATTR_PATP 10 //攻击力ATTR_PDFP 11 //防御...

2020-01-19 16:03:03 1942 1

原创 docker 使用学习四

docker 打包镜像docker images //查看已有的镜像docker save redis:3.2 hello-world > redis-tmp.tar //将多个镜像打包docker load < redis-tmp.tar //重新加载镜像...

2019-12-18 15:08:47 100

原创 docker 使用学习三

利用docker 已有的镜像制作自己的镜像docker pull redis //拉取redis镜像编写 Dockerfile 文件FROM redisMAINTAINER [email protected] redis.conf /etc/redis/redis.confVOLUME ["/data"]EXPOSE 6379CMD [ "redis-server", "/...

2019-12-18 14:16:14 102

原创 docker 使用学习二

1、拉取镜像docker pull centos查看镜像docker images2、创建容器docker run -it ubuntu /bin/bash //docker run 自动创建容器docker ps -a //查看容器信息docker inspect xxxxxxxx //查看容器详细信息exit //退出容器docker st...

2019-12-17 23:12:53 112

原创 docker 使用学习一

本人centos 8 环境1、docker 安装删除原来的dockersudo yum remove docker docker-common docker-selinux docker-engine安装依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-man...

2019-12-17 14:48:55 98

原创 go语言学习-编程案例1.6

并发操作package mainimport ( "fmt" "io" "io/ioutil" "net/http" "time")var https = []string{"https://www.baidu.com", "https://github.com/Addision"}func main() { start := time.Now() ch := m...

2019-12-06 00:49:45 148

原创 c++ 实现高效缓存(链式buffer)

如果我们从网络端接收的数据是不定长度的,不能提前分配好网络缓存大小,则可以选择使用链式缓存的实现方式。链式缓存主要是分配固定大小的缓存链保存数据,一个管理器去管理这些缓存链。链式缓存示例://一种链式缓冲//ringbuffer是固定长度,不能够扩展,链式buffer可以任意扩充/** * buffer * *first--chain buffer [1024] * ...

2019-12-06 00:23:02 3311 1

原创 c++ 实现循环缓存buffer

循环buffer是一种高效缓存方式,一般用于接收固定长度协议使用。如果使用不断扩展的缓存操作(见:https://blog.csdn.net/chinabhlt/article/details/102751880),则我们必须要malloc不断扩张缓存,还会memcpy或memmve操作,效率比较低,而ringbuffer则很好的规避这些低效操作。如果协议长度是固定的,则可以使用ringbuffe...

2019-12-05 23:56:24 1904 1

原创 基于事件方式实现的高效网络库

一个网络处理通常是我们通过epoll接收读事件,然后从网络层读取数据放入缓存中,在从缓存中读出数据,进行协议解析分发处理消息。一个消息过来通常是需要进行应答的,所以我们还需要将回复信息进行封包发送到网络层。1、网络接收相对比较慢,消息传递情况比较复杂,我们通常是需要进行缓存,然后分发,linux下通常是使用epoll进行消息接收。2、缓存需要很好的设计,尽量防止多次拷贝处理。3、通常网...

2019-11-30 09:13:50 247

原创 VS跨平台编译-根据vcxproj生成cmake文件

# -*- coding: UTF-8 -*-# 根据vcxproj生成cmake文件,便于linux下程序编译import osimport sysimport xml.etree.ElementTree as ETimport codecsimport reclass cmake_tool(object): def __init__(self): ...

2019-11-26 15:10:36 4121 5

原创 shell脚本使用记录

1、数组循环Servers=("Common" "ChatServer")gen_servers_cmake(){ for str in ${Servers[@]};do echo $str python3 gen_cmake.py $str $1 done }

2019-11-26 15:06:45 131

原创 vs编译中遇到的错误问题

1、error:LNK2019:无法解析的外部符号_imp_closesocket需要加入库文件ws2_32.lib2、应用程序没有调用 WSAStartup添加以下代码即可:#include <WinSock2.h> WSADATA wsaData; int nRet; if ((nRet = WSAStartup(MAKEWORD(2, 2...

2019-11-25 18:14:38 555

原创 MariaDB数据库使用及配置

1、windows 环境下配置及使用1、下载 MariaDB (https://mariadb.com/)进行安装注意,windows下安装会报一个service 权限错误,先不要退出,进入本地服务(进入设置面板搜索服务),找到mariadb,打开mariadb服务属性面板,选择登录tab,选择本地系统账户,然后点击重试,安装完成。2、下载 MariaDB (connector-c/c...

2019-11-22 15:24:24 1316

MMO游戏系统设计.emmx

mindmaster思维导图,一个mmo游戏系统设计包含一些系统展示

2019-10-11

composer工具

composer是laravel的管理程序,通过它进行laravel安装

2015-09-17

测试项目c++版

自己编写的一个小程序,包含server client通过简单协议进行交互,使用多线程及消息队列的使用,同时里面包含许多可复用的函数等。

2015-04-17

代码统计工具

可以统计c、java语言的代码量,然你方便的知道自己到底写过多少代码

2013-03-30

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

TA关注的人

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