1. Go设计模式之单例模式

    简介 单例模式是使用最多的设计模式之一,在工作和面试中也常常提到这个设置模式。单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。

    2018/09/12 设计模式

  2. Go垃圾回收机制

    Go的垃圾回收采用的是 标记-清理(Mark-and-Sweep)算法,就是先标记出需要回收的内存对象块,然后在清理掉;在这里不介绍标记和清理的具体策略,只介绍GC过程是怎么调度的以及STW相关 这个算法,会导致STW (stop the world)的问题,中断用户逻辑。

    2018/09/09 Go

  3. 常见GC算法

    这段时间在看Java和Go的垃圾回收机制,趁着这个机会我总结了一下常见的GC算法。分别是:引用计数法、Mark-Sweep法、三色标记法、分代收集法。 引用计数法 原理是在每个对象内部维护一个整数值,叫做这个对象的引用计数,当对象被引用时引用计数+1,当对象不被引用时引用计数-1。当引用计数为0时,自动销毁对象。 目前引用计数法主要用在c++标准库的 std::shared_ptr 、微软的 COM 、Objective-C 和PHP 中。 但是引用计数法有个缺陷就是不能解决循环引用的问题。循环引用是指对象 A 和对象 B 互相持有对方的引用。这样两个对象的引用计数都不是 0 ,因此永远不能被收集。 另外的缺陷是,每次对象的赋值都要将引用计数+1,增加了消耗。 Mark-Sweep法(标记清除法) 这个算法分为两步,标记和清除。 标记:从程序的根节点开始, 递归地 遍历所有对象,将能遍历到的对象打上标记。 清除:讲所有未标记的的对象当作垃圾销毁。

    2018/09/09 算法

  4. Mac下使用vscode的delve调试Go报错

    在mac下使用vscode开发Go程序时使用delve来debug如果报下面的错误: could not launch process: exec: "lldb-server": executable file not found in $PATH Process exiting with code: 1 可以直接打开终端(Terminal)输入: $ xcode-select --install

    2018/08/10 开发心得

  5. defer入门

    1.Defer的定义 defer:英文意思是推迟,延迟。所以defer语句表示推迟函数的执行,直到函数执行完毕返回为止。特别要提示是defer会在return语句之后执行。

    2018/07/18 Go

  6. MongoDB基础用法及查询操作

    MongoDB基础 MongoDB中和我们常见的Mysql数据库类似,可以做个简单的对比快速入门: 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,

    2018/02/16 MongoDB

  7. Go的随机数

    在游戏开发中经常用到随机数,使用Go的自带包math/rand可以很轻松的获得一个随机整数。但是,如果直接使用将会在我们的程序中获得一个固定的随机数不再变化。所以我们在使用前会加入时间种子,如果不首先设置种子,生成的随机数将在第一次运行时返回相同的数字。

    2018/01/11 Go

  8. HelloWorld!

    一直以来都想开始写博客,把自己开发中的心得记录下来,但是因为工作忙等其他原因(就是找个理由)一直拖着。做游戏开发也有4年多了,很多知识和技术需要整理才能有质的飞跃!

    2018/01/10 随记