- 博客(114)
- 收藏
- 关注
转载 Kbengine游戏引擎介绍
kbengine底层架构很庞大功能很完善。底层采用c++,而写逻辑只需要使用python,大家都知道python是一种开发效率非常高的语言,所以你只要写python代码就不用考虑底层如何实现。kbengine底层架构被设计为多进程分布式动态负载均衡方案, 理论上只需要不断扩展硬件就能够不断增加承载上限,单台机器的承载上限取决于游戏逻辑本身的复杂度。...
2022-07-27 11:32:53
926
转载 分布式系统的经典基础理论
————————————————版权声明:本文为CSDN博主「JavaGuide」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_34337272/article/details/80444032分布式系统设计理念 分布式系统架构的第一原则是不要分布!这句话看似矛盾实则揭露了分布式系统的很多特征。 分布式系统的目标与要素 分布式系统的目标是提升系统的整体性能和吞吐量另外还要尽量保证分布式系统的
2021-03-08 20:57:12
360
原创 《Go语言核心编程》(二)
接口的数据结构非空接口初始化的过程就是初始化一个iface类型的结构,示例如下://src/runtime/runtime2.gotype iface struct { tab *itab //itab存放类型及方法指针信息 data unsafe.Pointer //数据信息}type itab struct { inter *interfacetype //接口自身的静态类型 _type *_type //_type就是接口存放的具体实例的类型(动态类型) //hash存放
2020-12-13 22:18:52
241
原创 《Go语言核心编程》笔记一
《Go语言核心编程》第1章 基础知识总结Go的源程序基本构成:(1)关键字引导程序的基本结构。(2)内置类型标识符辅助声明变量和常量。(3)字面量辅助变量和常量的初始化。(4)分隔符帮助Go编译器识别各个token。(5)操作符和变量、关键字一起构成丰富的语法单元。package ***import { "****" "****"}func ***(){}复合数据类型指针、数组、切片、字典(map)、通道、结构和接口,它们的字面格式如下:*pointerTyp
2020-12-09 22:01:19
270
转载 产品读书《六顶思考帽》
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Julialove102123/article/details/86406600这本书目标明确解决了下面的问题:1)开会或者决策中大家争论不休的问题,你觉得这个项目可行,他觉得缺点太多,大家在一个事务的不同维度上争论,时间浪费多,难以决断。那怎么解决?作者将所有决策分成几个部分客观数据与信息,优点,缺点,创新;按流程走,讨论的优点的时候,所
2020-11-09 21:40:02
90
转载 Golang interface接口全面理解(一)
什么是interface在面向对象编程中,可以这么说:“接口定义了对象的行为”, 那么具体的实现行为就取决于对象了。在Go中,接口是一组方法签名。当一个类型为接口中的所有方法提供定义时,它被称为实现该接口。它与oop非常相似。接口指定类型应具有的方法,类型决定如何实现这些方法。创建和实现interface在Golang中只要实现了接口定义的方法,就是(JAVA implement)实现了该interfacepackage mainimport ( "fmt")//定义inte
2020-08-23 23:42:41
1168
1
原创 第五章 函数--《The Go Programming Language》
第五章 函数–《The Go Programming Language》本章的运行示例是一个网络蜘蛛,也就是web搜索引擎中负责抓取网页部分的组件,它们根据抓取网页中的链接继续抓取链接指向的页面。一个网络蜘蛛的例子给我们足够的机会去探索递归函数、匿名函数、错误处理和函数其它的很多特性。函数声明函数声明包括函数名、形式参数列表、返回值列表(可忽略)以及函数体。func name(parameter-list) (result-list) { body}形式参数列表描述了函数的参数名以及参数类型
2020-08-15 23:24:58
229
原创 速读Go语言圣经
The Go Programming Language中文版教程:https://studygolang.com/book/42?fr=sidebar前面1-5章都可以在Go语言教程|菜鸟教程,runoob.com/go/go-tutorial.html找到对应的教程。第一章 入门本章介绍了Go语言的基础组件。提供了足够的信息和示例程序,可以帮你快速入门。同时作者指出,学习Go语言,请不要按照自己熟悉的语音的套路写新语言程序。package mainimport "fmt"func mai
2020-08-06 20:55:00
393
原创 Go海拾遗
go语言学习笔记go语言是啥?1、普遍认为“Go = C + GC + Goroutinue"2、云计算时代的C语音,在开发效率和运行效率之间取得了绝佳的平衡3、Go(又稱Golang)是Google開發的一种静态强类型、編譯型、并发型,并具有垃圾回收功能的编程语言。(来自wiki)4、Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,
2020-08-02 11:05:10
222
转载 谷歌大数据的三驾马车
本文介绍大数据分析的鼻祖型论文“谷歌三驾马车”。这包括处理分布式数据的mapreduce、存储大量数据的gfs以及列式存储bigtable,当前流行的大数据技术都是在谷歌发表了这三大论文以后,不断的发展起来的,典型的就是Apache开源的hadoop和hbase,其中hadoop的mapreduce和hdfs的思想来源于谷歌mapreduce和gfs论文,而hbase来源于谷歌的bigtable论文。mapreduce介绍:MapReduce是一个处理大数据集的编程模型。它通过map函数把基于行的输入转
2020-07-28 00:19:45
7192
原创 【读书笔记】《软技能》这本书想告诉我们的事
SOFT SKILLSThe Software Develper’s Life Manual最近,有幸拜读了软技能-代码之外的生存指南。这本书,从作者自身经历出发,很好的讲述了在程序员工作内外应该如何做才能做到效率最优。下面谈谈我的收获:第一篇 职业这一篇很有意思,作者简述了软件工程师的职业发展的各个方面,从入门到入土,从删库到跑路。但总的核心观点我觉得有以下几点:从自身出发,进一步思考,如何为他人为企业创造价值。人际交往很重要。认识自己认识公司。简单来说就是你只有认识了自己,知道自己擅长、
2020-07-12 22:54:07
366
原创 [读书笔记]《鸟哥的LINUX私房菜》导读
大的分类第一部分 Linux的规则与安装 2~147第二部分 Linux文件、目录与磁盘格式 149~287第三部分 学习shell与shell script 289~415第四部分 Linux使用者管理 417~561第五部分 Linux系统管理员 563~778每章具体内容第0章 计算机概论这一章介绍了现代计算机最基础的定义与软件的定义。计算机的定义为:接受用户输入命令与...
2020-04-26 22:12:57
507
转载 使用gc、objgraph干掉python内存泄露与循环引用!
正文Python使用引用计数和垃圾回收来做内存管理,前面也写过一遍文章《Python内存优化》,介绍了在python中,如何profile内存使用情况,并做出相应的优化。本文介绍两个更致命的问题:内存泄露与循环引用。内存泄露是让所有程序员都闻风丧胆的问题,轻则导致程序运行速度减慢,重则导致程序崩溃;而循环引用是使用了引用计数的数据结构、编程语言都需要解决的问题。本文揭晓这两个问题在python语...
2020-04-09 22:55:40
655
转载 Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph
Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph转自:https://www.cnblogs.com/yaoyao9446/p/9242077.html1.timeit:>>> import timeit>>> d...
2020-04-08 22:39:58
308
原创 【读书笔记】《鸟哥的LINUX私房菜》- 文件的权限
利用ls -l显示的文件属性中,第一个字段是文件的权限,共有十位,第一个位是文件类型,接下来三个为一组,为用户、用户组、其他人的权限,权限有r、w、x(有时会有其它的权限)三种更改文件的用户组支持可用chgrrp,修改文件的拥有这可用chown,修改文件的权限可用chmod;chmod修改权限的方法有两种,分别是符号发与数字法,数字法中r、w、x数字分别为4、2、1;若需要root权限时,...
2020-03-06 19:17:37
237
原创 【读书笔记】《鸟哥的LINUX私房菜》- man page 与 info page
如何找到所需要的命令的思路举例来说,打印的相关命令,鸟哥其实仅记得lp(line print)而已。那我就由man lp开始,去找相关的说明,然后再以lp[tab][tab] 找到任何以lp 为开头的命令,找到我认为可能有点相关的命令后,先以–help去查找基本的用法。若有需要再以man去查询命令的用法,所以,如果是实际在管理Linux,那么真的只要记得几个很重要的命令即可,其他需要的命令,可以...
2020-03-03 19:02:51
167
原创 【读书笔记】《鸟哥的LINUX私房菜》- 命令行模式下命令的执行
命令行模式下命令的执行其实整个命令执行的方式很简单,只要记得几个重要的概念就可以。[dmtsai@study ~]$ command [-options] parameter1 parameter2 ...上述命令详细说明如下:1、一行命令中第一个输入的部分绝对是命令(command)或可执行文件(例如shell脚本);2、command为命令的名称,例如变换工作目录的命令为cd等;...
2020-03-01 11:06:07
183
转载 理解Python装饰器(Decorator)
理解Python装饰器(Decorator)Python装饰器看起来类似Java中的注解,然鹅和注解并不相同,不过同样能够实现面向切面编程。想要理解Python中的装饰器,不得不先理解闭包(closure)这一概念。闭包看看维基百科中的解释:在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(functionclosures),是引...
2019-12-26 23:50:16
151
转载 Nginx 原理和架构
Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处理网络请求与响应。master进程主要用来管理worker进程,具体包括如下4个主要功能:接收来自外界的信号。向各worker进程发送信号。监控woker进程的运行状态。当woker进程退出后(异常情况下)...
2019-12-26 23:39:17
109
原创 Python2.7 异常类总结
1、什么是异常对异常的最好描述是:它是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶段:首先是引起异常发生的错误,然后是检测(和采取可能的措施)阶段。标准异常Python内建异常:异常名称描述BaseException所有异常的基类SystemExitpython解释器请求退出KeyboardInterrupt用户中断执行(通常是...
2019-12-15 13:43:16
393
原创 [读书笔记]《贫穷的本质》
他们为发展经济学做出了有力的尝试,并且非常清楚自己的观点与占统治地位的论证方 法的差异。这些非常有头脑的经济学家丰富了贫困问题的基本原理——而这些原理经常为大 众所误解......本书引发了关于发展周期的讨论。除了重点关注随机对照实验之外,还涉及了 之前为学界所忽视或未得出一致观点的内容,如穷人是如何做决定的、他们的决定是否正 确,以及政客们是如何应对这些决定的。——《卫报》![贫穷曲线1](...
2019-11-30 21:42:17
716
1
转载 redis和mongodb各自的优缺点,怎么选择?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_43160039/article/details/83544228redis和mongodb各自的优缺点,怎么选择?Redis是神马?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型...
2019-11-20 21:30:07
652
原创 Unity3D添加离线帮助文档(MacOS版)
在编写unity3d的程序的时候,经常会查询Unity Manual 、Scripting Reference资料但是有时候遇上没网的时候就很蛋疼,在这里我以Unity3d 2018.3.3f1版本为例介绍如何在MacOS(v10.13.1)上安装离线用户文档。如果是Windows版本可以看看这位博主的:https://blog.csdn.net/q493201681/article/detai...
2019-03-04 21:19:55
1270
转载 【Linux多线程】三个经典同步问题
转自:http://blog.csdn.net/lisonglisonglisong/article/details/45390227在了解了《同步与互斥的区别》之后,我们来看看几个经典的线程同步的例子。相信通过具体场景可以让我们学会分析和解决这类线程同步的问题,以便以后应用在实际的项目中。一、生产者-消费者问题问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小...
2019-03-04 20:39:44
205
原创 DX11学习实用网站分享
这位大神的博客写的是非常好,强烈推荐DX11入门,以及各种初期会遇到的问题都可以从这里找到答案https://www.cnblogs.com/X-Jun/category/1372181.html这里是项目源码https://github.com/MKXJun/DirectX11-With-Windows-SDKD3D11官方教程文档https://code.msdn.microsof...
2019-02-28 12:34:58
992
原创 UTF-8中的BOM和NO BOM
结论:如果你写的程序在Windows平台使用(在UTF-8文件中加BOM是微软的习惯):带上,如果其它平台,最好不带(实际看情况)。因为会在文件中的开头加上特殊标记,如下:BOM EncodingEF BB BF UTF-8FE FF UTF-16 (big-endian)FF FE UTF-16 (little-endian)00 00 FE FF UTF-32 (big-endian...
2019-01-13 16:36:34
3528
转载 [读书笔记]《Windows游戏编程之从零开始》(零)
逐梦旅程:Windows游戏编程之从零开始正如这本书的书名所提到的这是一本讲解Windows游戏开发的入门图书。同时应该也是我第一本完整看完的游戏开发的书籍。在这里我主要是,秉着把书读薄的观点,对书中的知识点进行总结,以便自己之后能快速回忆起来,同时还对书中我比较困惑的地方进行补充。本书的构成下面这段话是作者经过多年的摸索,总结出来的从零开始的学习路线。这个路线可以分为如下几个阶段:第1...
2019-01-09 13:46:00
887
转载 【读书笔记】《Windows游戏编程之从零开始》(一)
Windows编程入门HelloVisualStudio这个项目介绍了,Windows程序的“心脏”——WinMain函数,以及MessageBox函数的详细用法。FirstBlood!这个项目介绍了,PlaySound函数,以及如何连接库文件。GameCore这个项目详细介绍如何完整的创建一个窗口,后面两部分都会这个窗口框架。】HelloVisualStudio这个项目就是认识一下...
2019-01-09 09:55:52
3469
原创 【读书笔记】《游戏改变世界》
游戏改变世界——游戏化如何让现实变得更美好最近终于有时间看完了这本书,作者简·麦戈尼格尔,在书中介绍的不少新颖的游戏观点,打动了我,让我觉得的确一款好的游戏的确能改变世界。并且一款好的游戏是具有持续性的并不是让玩家一直沉浸其中的,应该塑造终身玩家:能够在心爱的游戏与完整而积极的人生之间实现平衡的人。下面我用一张图介绍一下我的读书笔记。...
2018-11-27 21:55:44
1027
2
转载 常用的命名规范
注意我们可以遵守,但不要墨守成规。命名规则(适用于C++与Java):描述实例类名混合使用大小写,首字母大写ClassName类型定义,包括枚举和typedef,混合使用大小写,首字母大写TypeName枚举类型除了混合使用大小写外,总以复数形式表示EnumeratedTypes局部变量除了混合使用大小写外,且首字母小写,其名字应该与底层数据类型无关...
2018-11-26 17:11:31
640
原创 UML简介
什么是UML?Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。为什么要了解UML?因为最近面试以及要编写项目文档,都要用到图片进行描述,知道规范化的画图技巧有助于把自己的想法传达出去,与其他...
2018-10-22 16:21:20
1204
原创 程序员身体Debug心得
为什么写这篇文章主要是在研究生期间健身的前两年,我的身体确实有了很大的改善。想写一篇文章纪念一下两年的坚持。在长期坚持锻炼的过程中,从大学体测一个引体向上都拉不起来,到现在一口气13个,从跑1000m就气喘吁吁,到现在跑2000m都只是热身,从一块腹肌到现在的六块腹肌。健身不但带来身体上的改变,也磨炼了我的意志,提升我的幸福感。我一直认为,健康的身体,良好的人际关系,充满成就感的工作是幸福生活...
2018-10-08 17:14:18
374
原创 C++,取得[a,b]的随机整数,使用(rand()%(b-a+1)+a);
#include <stdlib.h> #include <time.h> int getRand(int begin,int end){ srand((unsigned)time(NULL)); return rand()%(end - begin + 1) + begin;}
2018-09-13 11:21:42
2814
原创 C++11线程中的几种锁
线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能与性能成反比。不过我们一般不使用递归锁(C++标准库提供了std::recursive_mutex),所以这里就不推荐了。互斥锁(Mutex)互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线...
2018-08-21 16:51:13
61215
7
转载 C++11的智能指针(常见面试问题)
Q:讲讲智能指针吧。 A:三种智能指针,shared_ptr,unique_ptr,weak_ptr。Q:shared_ptr的原理 A:shared_ptr维护了一个指向control block的指针对象,来记录引用个数。Q:weak_ptr的原理 A:weak_ptr用于避免shared_ptr相互指向产生的环形结构,造成的内存泄漏。weak_ptr count是弱引用个数;弱...
2018-08-16 23:17:42
10113
转载 AVL树与红黑树的比较
红黑树比AVL树的效率如果插入一个node引起了树的不平衡,AVL和RB-Tree都是最多只需要2次旋转操作,即两者都是O(1);但是在删除node引起树的不平衡时,最坏情况下,AVL需要维护从被删node到root这条路径上所有node的平衡性,因此需要旋转的量级O(logN),而RB-Tree最多只需3次旋转,只需要O(1)的复杂度。作者:Acjx 链接:https://www.zh...
2018-07-03 10:29:02
1852
原创 [读书笔记]深度探索C++模型_第七章_站在对象模型的尖端
template、exception handling(EH)、runtime type identification(RTTI)template的声明。基本来说就是当你声明一个template class、template class member function等等时,会发生什么事情。如何“实例化”class object、inline nonmember 以及 member tem...
2018-06-27 16:47:35
259
原创 [读书笔记]深度探索C++模型_第六章_执行期语意学
6.1 对象的构造和析构全局对象一般而言我们会把 object 尽可能放置在使用它的那个程序区段附近,这么做可以节省非必要的对象产生操作和摧毁操作。C++程序中所有的 global objects 都被放置程序的 data segment 中。也就是静态变量区。 局部静态对象const Matrix&amp; identity() { static Matr...
2018-06-26 23:20:56
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人