<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Abel's Blog]]></title><description><![CDATA[我干了什么?究竟拿了时间换了什么?]]></description><link>https://blog.youkuaiyun.com/erlang_hell</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; erlang_hell]]></copyright><item><title><![CDATA[2022-05-04-Redis-Streams-译]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/124571323</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/124571323</guid><author>erlang_hell</author><pubDate>Wed, 04 May 2022 15:18:32 +0800</pubDate><description><![CDATA[了解Redis里面的流]]></description><category></category></item><item><title><![CDATA[2020-11-21-卡农吉他谱]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/124566963</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/124566963</guid><author>erlang_hell</author><pubDate>Wed, 04 May 2022 10:33:15 +0800</pubDate><description><![CDATA[卡农]]></description><category></category></item><item><title><![CDATA[2021-11-05-golang内存分配]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/121197759</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/121197759</guid><author>erlang_hell</author><pubDate>Sun, 07 Nov 2021 21:38:39 +0800</pubDate><description><![CDATA[这里写自定义目录标题简介大事件基础数据结构、概念STW(Stop The Word)流程golang源码注释mgc说明mstats说明内存分配分配大概流程内存块三色标记和写屏障控制器 gcControoler测试数据如何阅读heap信息概要统计信息堆统计信息简介信息细则栈信息细则非堆栈内存信息细则引用
简介
最近被golang的内存问题困扰，这里做一下功课，将通过收集资料，记录笔记的方式将golang的内存分配相关知识搞清楚。资料来自于阅读《go语言学习笔记》，源码，网上的资料。

大事件

2014/06]]></description><category></category></item><item><title><![CDATA[go-etcd阅读笔记]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/120502909</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/120502909</guid><author>erlang_hell</author><pubDate>Mon, 27 Sep 2021 10:09:13 +0800</pubDate><description><![CDATA[简介
etcd是CoreOS团队于2013年6月发起的开源项目，是一个分布式、可靠 key-value 存储的分布式系统。当然，它不仅仅用于存储，还提供共享配置及服务发现。
向etcd 注册 该服务（其实就是 存一个值）然后向etcd 发送心跳，当etcd 没有检测到心跳就会 把这个键值对 删了(这整个动作是etcd里的租约模式)，网关那边 就只需要 watch 这个 key ，就能够知道 所有服务的所有动态了
etcd现在用于制作服务发现是比较常见的。用一篇文章记录一下如何安装、配置、使用。以及介绍一些e]]></description><category></category></item><item><title><![CDATA[gperftools使用]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/120066760</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/120066760</guid><author>erlang_hell</author><pubDate>Thu, 02 Sep 2021 17:48:33 +0800</pubDate><description><![CDATA[简介

使用gperftools统计相关


准备
安装
性能监控工具gperftools-2.9.1，发布时间是2021-03-03。
tar xvf gperftools-2.9.1.tar.gz
cd gperftools-2.9.1
./configure
make -j8
sudo make install

64bit需要这个库的支持libunwind-1.5.0.tar.gz，发布时间2020-11-11。
tar xvf libunwind-1.5.0.tar.gz
cd libunwind]]></description><category></category></item><item><title><![CDATA[REUSEPORT-REUSEADDR-学习]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/120038695</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/120038695</guid><author>erlang_hell</author><pubDate>Wed, 01 Sep 2021 14:11:23 +0800</pubDate><description><![CDATA[简介
记录一下stackoverflow关于 SO_REUSEPORT SO_REUSEADDR 两个选项的解释。

理论
SO_REUSEADDR
如果在绑定套接字之前在套接字上启用了SO_REUSEADDR，则可以成功绑定该套接字，除非与绑定到完全相同的源地址和端口组合的另一个套接字发生冲突。现在你可能想知道这和以前有什么不同？关键词是“完全正确”。因此，REUSEADDR主要改变了在搜索冲突时处理通配符地址（“任何IP地址”）的方式。
测试结果：




SO_REUSEADDR
socketA
so]]></description><category></category></item><item><title><![CDATA[MySQL学习笔记]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/120038666</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/120038666</guid><author>erlang_hell</author><pubDate>Wed, 01 Sep 2021 14:10:18 +0800</pubDate><description><![CDATA[简介

分析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]]></description><category></category></item><item><title><![CDATA[Behavior3Editor批量导出改造]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/114991962</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/114991962</guid><author>erlang_hell</author><pubDate>Thu, 18 Mar 2021 21:53:28 +0800</pubDate><description><![CDATA[项目里面需要将行为树project批量的导出子树。
开始部署环境
安装环境
将node.js 设置成 10.x win32版本，再去匹配 gulp 的版本。
通过命令行安装gulp工具。
npm install gulp-cli -g
npm install gulp -D
npx -p touch nodetouch gulpfile.js
gulp --help

设置梯子
npm config set registry http://registry.npm.taobao.org

其实就是 .npm]]></description><category></category></item><item><title><![CDATA[帧同步和状态同步笔记]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/114111160</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/114111160</guid><author>erlang_hell</author><pubDate>Fri, 26 Feb 2021 08:43:31 +0800</pubDate><description><![CDATA[前言
网络同步模式的演化史
参考

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





帧同步
状态同步




FPS
doom
CSGO、守望先锋、逆战、绝地求生


M.]]></description><category></category></item><item><title><![CDATA[线性代数笔记]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/114008072</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/114008072</guid><author>erlang_hell</author><pubDate>Wed, 24 Feb 2021 08:49:24 +0800</pubDate><description><![CDATA[参考资料《空间解析几何与线性代数》 ISBN 7-11-14572-0/O*393，机械工业出版社。
丛书清单：
高等工科数学系列课程教材
工科数学分析教程
空间解析几何与线性代数
概率论与数理统计
复变函数论与运算微积分
计算技术与程序设计
最优化方法
数学物理方程

线性方程组是线性代数的基础。
搞清楚三个概念

行列式概念的形成
行列式的基本性质及计算方法
利用行列式求解线性方程组

行列式
二阶、三阶行列式
先来解含两个未知量x1,x2x_{1},x_{2}x1​,x2​的线性方程组
{a11x1+]]></description><category></category></item><item><title><![CDATA[recastnavigation]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/113539423</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/113539423</guid><author>erlang_hell</author><pubDate>Tue, 02 Feb 2021 09:57:58 +0800</pubDate><description><![CDATA[recastnavigation 在做3d游戏的时候，用于做导航的。当前使用 unreal 4.25
1.recastnavigation工程
RecastNavigation 是一个的导航寻路工具集，它包括了几个子集：
Recast：负责根据提供的模型生成导航网格。
Detour：利用导航网格做寻路操作。这里的导航网格可以是 Recast 生成的，也可以是其他工具生成的。
DetourCrowd：提供了群体寻路行为的功能。
Recast Demo：一个很完善的 Demo，基本上将 Recast 、 Det]]></description><category></category></item><item><title><![CDATA[go语言并发之道-笔记]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/112557079</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/112557079</guid><author>erlang_hell</author><pubDate>Wed, 13 Jan 2021 11:45:15 +0800</pubDate><description><![CDATA[借过同事的一本《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.对你的代码建模：通]]></description><category></category></item><item><title><![CDATA[cgo的使用]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/112211831</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/112211831</guid><author>erlang_hell</author><pubDate>Tue, 05 Jan 2021 08:19:02 +0800</pubDate><description><![CDATA[golang可以通过cgo直接来调用c/c++的函数代码。这里是参考《Go语言高级编程》书，做一些笔记。结构按照书的章节来。

1.快速入手
2.CGO基础

2.1.操作系统区分


3.类型转换
4.函数调用
6.实例
10.编译/链接参数
参考

1.快速入手
// hello.go
package main

import "C"

func main() {
    println("hello cgo")
}

2.CGO基础
需要安装C/C++构建工具链，在macOS和Linux下是要安装GC]]></description><category></category></item><item><title><![CDATA[golang-pprof性能分析工具]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/111980463</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/111980463</guid><author>erlang_hell</author><pubDate>Wed, 30 Dec 2020 13:53:36 +0800</pubDate><description><![CDATA[记录一下pprof查询golang性能相关；
1.在代码里面添加性能监控的代码
import (
	"net/http"
    _ "net/http/pprof"
)
go func() {
    http.ListenAndServe(":10003", nil)
}()

2.需要安装环境
go get -u github.com/google/pprof

2.1.开篇
编写好了golang服务之后，接着要开始关注服务的CPU，内存使用情况。golang提供了性能剖析工具，记录一些自己搜集到的信]]></description><category></category></item><item><title><![CDATA[3d数学]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/111979464</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/111979464</guid><author>erlang_hell</author><pubDate>Wed, 30 Dec 2020 13:48:19 +0800</pubDate><description><![CDATA[这里写自定义目录标题1.坐标系2.三角学2.1.直角三角形三角函数概念2.2.角度弧度参考
在游戏开发中，需要使用到向量，三角函数之类的知识。
1.坐标系
2d坐标系：x,y
3d坐标系：x,y,z
2.三角学
2.1.直角三角形三角函数概念

a：对边
b：邻边
c：斜边
∠A为θ∠A 为\theta∠A为θ
sin(θ)=a/csin(\theta) = a/csin(θ)=a/c
正弦：对边比斜边。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bOrB7aoI-160]]></description><category></category></item><item><title><![CDATA[go[2]-数据结构]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/109891556</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/109891556</guid><author>erlang_hell</author><pubDate>Sat, 21 Nov 2020 10:34:37 +0800</pubDate><description><![CDATA[参考golang手册，记录数据类型相关资料；方便日后来回顾基础知识。
1. 基本数据
1.1. 布尔
布尔类型，表示真与假。true|false
1.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    ]]></description><category></category></item><item><title><![CDATA[FSM-Golang]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/109819249</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/109819249</guid><author>erlang_hell</author><pubDate>Thu, 19 Nov 2020 17:36:08 +0800</pubDate><description><![CDATA[这里写自定义目录标题概念游戏中常用的状态机阅读 looplab/fsm 实现参考
使用FSM（Finite State Machine）来制作怪物的AI，比较轻量级；
概念
状态机分为两大类：




名称
说明




Moore machine
输出只和状态有关而与输入无关


Mealy machine
输出不仅和状态有关而且和输入有关系（使用这种状态机通常可以减少状态的数量。）


状态机可归纳为4个要素，即现态、条件、动作、次态。这样的归纳，主要是出于对状态机的内在因果关系的考虑。“现态”和“条件]]></description><category></category></item><item><title><![CDATA[golang http post 实验]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/106409452</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/106409452</guid><author>erlang_hell</author><pubDate>Thu, 28 May 2020 17:21:52 +0800</pubDate><description><![CDATA[在制作游戏服务器的时候，登录验证操作的时候，需要发起post请求给web服务器，来完成对于登录的校验。这篇文章记录一下使用golang常用的一些操作，方便今后需要的时候查阅。对于关于如何打包post，查看考了stackoverflow1。
用json方式 post
讲数据打包成json
func (this *User) calcJson(cfg *Cfg) *bytes.Buffer {

	kvPairs := make(map[string]string)
	kvPairs["packageId"] ]]></description><category></category></item><item><title><![CDATA[c++ 11 随机数笔记]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/106099461</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/106099461</guid><author>erlang_hell</author><pubDate>Wed, 13 May 2020 15:38:38 +0800</pubDate><description><![CDATA[直接使用梅森旋转来产生随机数
#include &lt;random&gt;
#include &lt;utility&gt;

static std::random_device rd;
static std::mt19937_64 rg(rd());

int32_t random_int(int32_t _a, int32_t _b )
{
	if (_a &gt; _b)
		std::swap(_a, _b);
	std::uniform_int_distribution&lt;&gt; dist]]></description><category></category></item><item><title><![CDATA[log4net]]></title><link>https://blog.youkuaiyun.com/erlang_hell/article/details/104819486</link><guid>https://blog.youkuaiyun.com/erlang_hell/article/details/104819486</guid><author>erlang_hell</author><pubDate>Thu, 12 Mar 2020 15:06:22 +0800</pubDate><description><![CDATA[使用
把Log4Net.Dll复制到项目的根目录下，然后添加Log4Net的引用。
在web.config文件中新增引用
&lt;configuration&gt;
    &lt;configSections&gt;
        &lt;section name="log4net" type="System.Configuration.IgnoreSectionHandler"/&gt;
 ...]]></description><category></category></item></channel></rss>