自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Abel's Blog

我干了什么?究竟拿了时间换了什么?

  • 博客(116)
  • 资源 (2)
  • 收藏
  • 关注

翻译 2022-05-04-Redis-Streams-译

了解Redis里面的流

2022-05-04 15:18:32 343

原创 2020-11-21-卡农吉他谱

卡农

2022-05-04 10:33:15 442

原创 2021-11-05-golang内存分配

这里写自定义目录标题简介大事件基础数据结构、概念STW(Stop The Word)流程golang源码注释mgc说明mstats说明内存分配分配大概流程内存块三色标记和写屏障控制器 gcControoler测试数据如何阅读heap信息概要统计信息堆统计信息简介信息细则栈信息细则非堆栈内存信息细则引用简介最近被golang的内存问题困扰,这里做一下功课,将通过收集资料,记录笔记的方式将golang的内存分配相关知识搞清楚。资料来自于阅读《go语言学习笔记》,源码,网上的资料。大事件2014/06

2021-11-07 21:38:39 426

原创 go-etcd阅读笔记

简介etcd是CoreOS团队于2013年6月发起的开源项目,是一个分布式、可靠 key-value 存储的分布式系统。当然,它不仅仅用于存储,还提供共享配置及服务发现。向etcd 注册 该服务(其实就是 存一个值)然后向etcd 发送心跳,当etcd 没有检测到心跳就会 把这个键值对 删了(这整个动作是etcd里的租约模式),网关那边 就只需要 watch 这个 key ,就能够知道 所有服务的所有动态了etcd现在用于制作服务发现是比较常见的。用一篇文章记录一下如何安装、配置、使用。以及介绍一些e

2021-09-27 10:09:13 220

原创 gperftools使用

简介使用gperftools统计相关准备安装性能监控工具gperftools-2.9.1,发布时间是2021-03-03。tar xvf gperftools-2.9.1.tar.gzcd gperftools-2.9.1./configuremake -j8sudo make install64bit需要这个库的支持libunwind-1.5.0.tar.gz,发布时间2020-11-11。tar xvf libunwind-1.5.0.tar.gzcd libunwind

2021-09-02 17:48:33 1235

转载 REUSEPORT-REUSEADDR-学习

简介记录一下stackoverflow关于 SO_REUSEPORT SO_REUSEADDR 两个选项的解释。理论SO_REUSEADDR如果在绑定套接字之前在套接字上启用了SO_REUSEADDR,则可以成功绑定该套接字,除非与绑定到完全相同的源地址和端口组合的另一个套接字发生冲突。现在你可能想知道这和以前有什么不同?关键词是“完全正确”。因此,REUSEADDR主要改变了在搜索冲突时处理通配符地址(“任何IP地址”)的方式。测试结果:SO_REUSEADDRsocketAso

2021-09-01 14:11:23 305

原创 MySQL学习笔记

简介分析Blob和varbinary;收集关于MySQL和MariaDB相关差异Blob varbinary差异引用自stackoverflow的简单说明,原文参考[1]:VARBINARY在MySQL 5.0.2及以下版本上被绑定为255字节,在5.0.3及以上版本上被绑定为65kB。BLOB绑定到65kB。最后,VARBINARY实际上与BLOB是一样的(从可以存储什么的角度来看),除非您想保持与“旧”版本MySQL的兼容性。MySQL文档说:在大多数情况下,您可以将BLOB列视为V

2021-09-01 14:10:18 226

原创 Linux-环境配置

记录一下Linux运维相关的学习资料;Centosyum install -y wget git screen libtool automakeyum install zlib-devel -yyum install centos-release-sclyum makecacheyum install devtoolset-7-gcc-c++ -yyum install llvm-toolset-7 -yyum install cmake -yyum install python3-dev

2021-04-05 09:02:49 371 4

原创 Behavior3Editor批量导出改造

项目里面需要将行为树project批量的导出子树。开始部署环境安装环境将node.js 设置成 10.x win32版本,再去匹配 gulp 的版本。通过命令行安装gulp工具。npm install gulp-cli -gnpm install gulp -Dnpx -p touch nodetouch gulpfile.jsgulp --help设置梯子npm config set registry http://registry.npm.taobao.org其实就是 .npm

2021-03-18 21:53:28 435

转载 帧同步和状态同步笔记

前言网络同步模式的演化史参考前言在制作网络游戏的时候,经常会讨论同步方式。同步这个话题就是让不同客户端的游戏表现同步。王者荣耀是使用的帧同步(Lockstep),有成功案例,后续才会有很多人想着跟进。帧同步:服务器按照帧转换客户端的操作,其他客户端依赖这些信息在本地模拟表现。状态同步:客户端操作的时候,只能将状态数据提交给服务器,服务器得到了通过运算将最终结果广播给全部客户端。成功案例清单:帧同步状态同步FPSdoomCSGO、守望先锋、逆战、绝地求生M.

2021-02-26 08:43:31 614

原创 线性代数笔记

参考资料《空间解析几何与线性代数》 ISBN 7-11-14572-0/O*393,机械工业出版社。丛书清单:高等工科数学系列课程教材工科数学分析教程空间解析几何与线性代数概率论与数理统计复变函数论与运算微积分计算技术与程序设计最优化方法数学物理方程线性方程组是线性代数的基础。搞清楚三个概念行列式概念的形成行列式的基本性质及计算方法利用行列式求解线性方程组行列式二阶、三阶行列式先来解含两个未知量x1,x2x_{1},x_{2}x1​,x2​的线性方程组{a11x1+

2021-02-24 08:49:24 736

原创 recastnavigation

recastnavigation 在做3d游戏的时候,用于做导航的。当前使用 unreal 4.251.recastnavigation工程RecastNavigation 是一个的导航寻路工具集,它包括了几个子集:Recast:负责根据提供的模型生成导航网格。Detour:利用导航网格做寻路操作。这里的导航网格可以是 Recast 生成的,也可以是其他工具生成的。DetourCrowd:提供了群体寻路行为的功能。Recast Demo:一个很完善的 Demo,基本上将 Recast 、 Det

2021-02-02 09:57:58 3597 4

原创 go语言并发之道-笔记

借过同事的一本《go语言并发之道》一直都没有去阅读。我是非常懒惰的,开一篇笔记,督促自己将本书阅读完成。主要是抓举一些概念,然后就是理解如何组织代码。O’Reily 奥莱利 出版社。0. 前言1. 并发概述1.1. 并发的重要性1.2. 并发难点1.2.1. 竞争条件1.2.2. 原子性1.2.3. 内存访问同步1.2.4. 死锁、活锁和饥饿1. 死锁(deadlock)2. 活锁(livelock)3. 饥饿(hunger)1.2.5.2.对你的代码建模:通

2021-01-13 11:45:15 465

原创 cgo的使用

golang可以通过cgo直接来调用c/c++的函数代码。这里是参考《Go语言高级编程》书,做一些笔记。结构按照书的章节来。1.快速入手2.CGO基础2.1.操作系统区分3.类型转换4.函数调用6.实例10.编译/链接参数参考1.快速入手// hello.gopackage mainimport "C"func main() { println("hello cgo")}2.CGO基础需要安装C/C++构建工具链,在macOS和Linux下是要安装GC

2021-01-05 08:19:02 541 1

原创 golang-pprof性能分析工具

记录一下pprof查询golang性能相关;1.在代码里面添加性能监控的代码import ( "net/http" _ "net/http/pprof")go func() { http.ListenAndServe(":10003", nil)}()2.需要安装环境go get -u github.com/google/pprof2.1.开篇编写好了golang服务之后,接着要开始关注服务的CPU,内存使用情况。golang提供了性能剖析工具,记录一些自己搜集到的信

2020-12-30 13:53:36 486 3

原创 3d数学

这里写自定义目录标题1.坐标系2.三角学2.1.直角三角形三角函数概念2.2.角度弧度参考在游戏开发中,需要使用到向量,三角函数之类的知识。1.坐标系2d坐标系:x,y3d坐标系:x,y,z2.三角学2.1.直角三角形三角函数概念a:对边b:邻边c:斜边∠A为θ∠A 为\theta∠A为θsin(θ)=a/csin(\theta) = a/csin(θ)=a/c正弦:对边比斜边。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bOrB7aoI-160

2020-12-30 13:48:19 429

原创 go[2]-数据结构

参考golang手册,记录数据类型相关资料;方便日后来回顾基础知识。1. 基本数据1.1. 布尔布尔类型,表示真与假。true|false1.2. 整型/浮点数数值类型,分为整形和浮点类型,下面列举的是类型,以及读数的区间。uint8 the set of all unsigned 8-bit integers (0 to 255)uint16 the set of all unsigned 16-bit integers (0 to 65535)uint32

2020-11-21 10:34:37 157

原创 FSM-Golang

这里写自定义目录标题概念游戏中常用的状态机阅读 looplab/fsm 实现参考使用FSM(Finite State Machine)来制作怪物的AI,比较轻量级;概念状态机分为两大类:名称说明Moore machine输出只和状态有关而与输入无关Mealy machine输出不仅和状态有关而且和输入有关系(使用这种状态机通常可以减少状态的数量。)状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件

2020-11-19 17:36:08 607

原创 golang http post 实验

在制作游戏服务器的时候,登录验证操作的时候,需要发起post请求给web服务器,来完成对于登录的校验。这篇文章记录一下使用golang常用的一些操作,方便今后需要的时候查阅。对于关于如何打包post,查看考了stackoverflow1。用json方式 post讲数据打包成jsonfunc (this *User) calcJson(cfg *Cfg) *bytes.Buffer { kvPairs := make(map[string]string) kvPairs["packageId"]

2020-05-28 17:21:52 387

原创 c++ 11 随机数笔记

直接使用梅森旋转来产生随机数#include <random>#include <utility>static std::random_device rd;static std::mt19937_64 rg(rd());int32_t random_int(int32_t _a, int32_t _b ){ if (_a > _b) std::swap(_a, _b); std::uniform_int_distribution<> dist

2020-05-13 15:38:38 239

原创 log4net

使用把Log4Net.Dll复制到项目的根目录下,然后添加Log4Net的引用。在web.config文件中新增引用<configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> ...

2020-03-12 15:06:22 169

原创 游戏中编号的分配

文章目录概述方案1方案2方案3方案4参考概述游戏中的编号包含玩家编号,英雄编号,物品编号等等。也是制作游戏的基础。编写这篇文章,来分析一下游戏中这些编号是如何生成的。方案1在启动服务器之后将时间戳记录下来,再加上一点点随机数参杂在其中。每次获取的时候使用一个极大的质数做乘法,取低位;方案2为每个区服分配一个固定区间的编号,并且保存当前的使用情况;这样是严格按照id不重复来制作;方案3...

2020-02-16 09:59:06 1684 1

转载 go-mod

文章目录概述如何开启go mod命令实例go mod tidy我无法使用goalng.org/x的包我该怎么办参考链接概述本文是阅读了别人的文档之后,做的笔记。go modules 是 golang 1.11 新加的特性。当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module。特性和no...

2020-02-12 17:22:47 261 2

原创 将博客搬至CSDN

对于markdown的支持还是比较弱,所以我决定还是将blog搬回到csdnerlang_hell

2020-02-11 09:05:45 90

原创 python打包exe

在编写了python工具之后,为了方便在windows下使用,会将文件打包成exe。下面介绍打包的一些知识。安装环境# 安装打包库pip install pyinstaller# 更新打包库pip install --upgrade pyinstaller尝试过在3.6版本下,使用了这两个指令,打包的文件还是会出现这样的问题:config> .\export_exc...

2020-02-11 08:46:20 520

原创 centos 7 使用iso来做源

调整源重命名CentOS-Base.repo 这样可以防止在查找的时候,还会去优先找网路上的源。 /etc/yum.repos.d/ 插入iso光盘 挂载iso挂载点mkdir /media/cdromsmount /dev/cdrom /media/cdrom配置CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo ...

2020-02-10 08:57:35 267

原创 go-pprof笔记

开篇编写好了golang服务之后,接着要开始关注服务的CPU,内存使用情况。golang提供了性能剖析工具,记录一些自己搜集到的信息,写下一些实践的情况。在golang中内置了pprof工具,专门来做golang语言的优化。PProf 关注的模块CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据 Memory Profile...

2020-02-08 16:59:00 280

原创 fabric同步文件

原始之前编写了一个工具,用于从windows里面根据svn修改状态,筛选一系列的文件;计算本地文件和远程linux文件的md5差异,上传有差异的文件到远程。#!/usr/bin/python# encoding: utf-8# pip install svn# pip install fabric#import loggingimport osimport svn.loca...

2020-02-07 10:15:05 295

原创 docker笔记

简介docker是为了简化外网服务器软件环境部署的工作。现在初浅的理解是,可以在linux机器上通过docker单独安装mysql,nginx,应用程序的也可以跑在一个docker之上。Docker 包括三个基本概念:镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16...

2020-02-06 10:10:28 86

原创 go-mysql

记录一下使用mysql来处理db相关操作。连接dbpackage mainimport ( "database/sql" "github.com/go-sql-driver/mysql" "github.com/sirupsen/logrus")func connMysql() bool { cfg := &mysql.Config{}...

2020-02-04 22:08:43 186

原创 go-读取输入参数

前言编写程序的时候,需要读取用户输入的参数来做一些事情。在golang里面有两个库可以来制作这块的功能。flagflag包,加载输入信息。官方两个例子:// Example 1: A single string flag called "species" with default value "gopher".var species = flag.String("species...

2020-01-31 09:18:19 821

原创 go-源码阅读-准备

golang语言写起来很方便,但是如果想把代码写的更好,例如规避gc潜在的问题,节约内存,提升运行性能,都需要对虚拟机做一些了解。这一系列的文章是我再阅读雨痕的《GO语言学习笔记》,记录一些信息。环境go 1.5.1 amd64 ubuntu14.04.3 LTS gdb 7.7.1引导程序启动不是使用main.main函数,之前有命令行处理,运行时初始化工作之后,才会进入用户逻辑...

2020-01-17 21:07:15 149

原创 python ansible后台批处理

官网当前这个只能支持linux机器作为主机。主页安装在centos中安装:sudo yum install ansible -ysudo pip install paramiko PyYAML Jinja2 httplib2 sixubuntu安装:sudo apt-get install software-properties-commonsudo apt-add...

2020-01-16 23:23:15 177

原创 go-工具链

linux环境搭建先解压缩golang的包tar -xf ./go.1.xxx.tar.gz -C /usr/local使用go env查询具体的环境信息。通过编辑~/.bashrc文件的环境变量来修改配置。go build参数 说明 示例 -o 可执行文件名 -a 强制重编译所有包()包含标准库 -p 并行编译...

2020-01-15 22:52:08 438

原创 golang-gin入门资料

下载地址官网文档一个实例Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourse...

2020-01-14 23:16:33 173

原创 gopher-lua初步了解

最近看到golang里面有人实现了一套lua的调用库。go-luahttps://github.com/yuin/gopher-luagithub.com/aarzilli/golua/lua性能对比This exercises the call stack implementation. When computing fib(35), go-lua is about 6x slower ...

2020-01-13 21:50:41 2288

原创 go-etcd入门资料

参考网站官方网站参考文档1微服介绍A distributed, reliable key-value store for the most critical data of a distributed system.为分布式系统重要数据提供分布式,可靠的key-value存储。feature 特性simple interface 简化的接口Read and write val...

2020-01-12 07:51:26 183

原创 go-micro入门[翻译]

官方主页Go Micro is a framework for microservice development.GoMicro是一个微服框架。Overview 概述Go Micro provides the core requirements for distributed systems development including RPC and Event driven com...

2020-01-11 12:15:56 165

原创 go-tcpsvr

go语言用于制作socket相关的事情是非常方便的。在底层框架直接有支持。在这里编写一个简单版本的服务器通讯逻辑。参考了leaf的代码。package mainimport ( "encoding/binary" "fmt" "io" "net" "os" "os/signal" "sync" "time")type ...

2020-01-09 16:42:52 158

原创 go[8]-测试

提高代码的质量,有两个路数:1.多测试;2.做代码review;如果能在代码放到外部去之前,做好单元测试,将会节省很多的时间(如果能把事情做好,减少很多处理bug的时间)。单元测试(unit test)单元测试能自动化,只是手段,而非目的。避免形式主义。需要持之以恒。想要习惯去做测试还是需要将测试的手段非常熟练,而且易用才能解开。编写单元测试是对即将实现的算法做复核预演。测试代码需要在...

2020-01-07 23:29:42 192

管理那些事

管理知识讲解。戏说,容易学习。适合初步学习管理的人。

2014-05-14

空空如也

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

TA关注的人

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