自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 STL 常用数据结构总结

常用数据结构对于面试的人来说, 基本上会用到的就下面几种数据结构, 如果可以使用STL的话就使用下面几种: stack, priority_queue, queue, vector, list, set, map, unordered_mapstack(栈)主要操作: push, top, pop#include <stack>using namespace std;in...

2018-10-14 14:09:36 949 1

原创 Effective C++ (7): Templates and Generic Programming

Introduction这一章主要介绍了模板编程, 最核心的思想就是尽可能地把运行期所做的事情移动至编译期完成. 最后还简要介绍了以下 TMPRule 41: Understand implicit interfaces and compile-time polymorphism了解隐式编程和编译期多态. 对于着一条 Rule, 需要了解到的就是 template 的多态与 cl...

2018-09-05 11:26:37 433

原创 Effective C++ (9): Miscellany

Introduction杂项Rule 53: Pay attention to compiler warningsRemeber:严肃对待编译器发出的警告信息.不要过度依赖编译器的警告信息, 因为不同的编译器对待事情态度并不相同Rule 54: Familiarize yourself with the standard library, including TR...

2018-09-05 11:24:29 347

原创 Effective C++ (8): Customizing new and delete

Introduction本章主要讨论了自定义 new 和 delete 的目的和需要注意的问题Rule 49: Understand the behavior of the new-handler在 new 抛出 bad_alloc 异常之前, 会先调用一个客户指定的错误处理函数, 就是 new_handler:namespace std{ typedef void (...

2018-09-05 11:23:47 225

原创 Effective C++ (6): Inheritance and Oject-Oritent Design

Introduction本章主要围绕继承展开讨论. 如何确定是 public 继承还是 private 或 protected 继承, 继承中virtual的确定等等. 信息量较大.Rule 32: Make sure public inheritance models “is-a”并不是满足 is-a 的所有关系都可以使用 public 继承, 例如 square is-a re...

2018-09-03 17:09:08 370

原创 Effective C++ (5): Implementation

Introduction本章讨论了 变量声明, 变量转换(casting), 变量返回, 异常处理, inline, 解决编译依赖等问题. 信息量较大也涉及到了设计模式的问题, 需仔细咀嚼.Rule 26: Postpone variable definitions as long as possible尽量延后程序定义式的出现, 因为考虑到如果出现 exceptions 的话, ...

2018-09-03 12:08:43 386

原创 Effective C++ (4): Designs and Declaration

Introduction这一章主要讲述了如何去设计对象, 接口. Rule 18: Make Interfaces easy to use correctly and hard to use incorrectly在设计接口的时候, 应该尽量做到, 如果使用者能够通过编译, 那么就应该能得到他所期望的结果. 如果有任何错误, 应该尽量提前至编译期就能够报出来.例如: clas...

2018-09-02 17:06:24 228

原创 Effective C++ (3): Resource Management

Introduction这一章的核心是讲了 RAII (Resource Acquisition Is Initialization) 的概念, 并且在书写相关代码的时候避免入坑.Rule 13: Use objects to manage resources将资源放到对象中, 当离开作用域, 调用对象的析构函数的时候, 再自动把资源给释放掉, 这样就能保证资源被合理的释放. ...

2018-09-02 17:05:27 241

原创 Effective C++ (2): Constructors, Destructors, and Assignment Operators

2. Constructors, Destructors, and Assignment OperatorsIntroduction如题, 书写类的构造函数, 析构函数, 复制构造函数的时候需要遵守以下原则, 以防出错.Rule 05: Know what functions C++ silently writes and calls编译器会暗自为 class 生成 def...

2018-09-01 20:02:29 234

原创 Effective C++ (1): Accustoming Yourself to C++

1. Accustoming Yourself to C++Introduction本章是最基础的一点东西, 4条规则.Rule 01: View C++ as a federation of languages将 c++ 视作一个语言联邦而不是一个单一的语言, 才能更好地理解它的特性. 可以认为 c++ 实际上是由四个子语言构成的:C. 说到底最基本的语句还是以c为...

2018-09-01 17:48:55 264

原创 libuv源码剖析(四): 高效线程池Threadpool

Introduction在网络编程中, 始终都是基于Reactor模型的变种, 无论怎么演化, 核心组件都包括: Reactor实例(事件注册, 注销, 通知); 多路复用器(由操作系统提供, 比如kqueue, select, epoll); 事件处理器(handler)以及事件源(linux中这就是描述符)这四个组件.一般,会单独启动一个线程运行Reactor实例来实现真正的异步操作。...

2018-08-29 14:36:35 4071 2

原创 libuv源码剖析(三): 事件循环loop

Introductionlibuv中的 loop 是 libuv 最为核心的事件队列. 在熟悉了 libuv 的高效事件队列 queue, 和基本数据结构 handle 之后, 就需要来了解一下 loop 的实现. 下面通过一个uvbook中具体的实例来讲解.uv_loop_t 数据结构我们首先看一下 uv_loop_t 的数据结构:struct uv_loop_s { ...

2018-08-28 17:05:16 4736 1

原创 libuv源码剖析(二): 句柄handle

Introductionhandle 句柄就类似于事件, 需要被注册到 loop 中. 在 libuv 中, 事件的基本类型都已经给出了定义, 共同”继承”了 uv_handle_s, 这里所说的继承, 是c语言通过 -_ 来曲线救国实现的抽象基类抽象基类是 uv_handle_t:/* The abstract base class of all handles. */s...

2018-08-26 23:19:30 1167

原创 libuv源码剖析(一): 高效队列 Queue

Introductionlibuv中的高效队列是用c语言, 只使用宏定义封装而成, 据说linux内核都是这个风格的, 因为我没有读过linux内核源码, 所以一开始理解这一段代码还是有些困难的.libuv中使用的是双向循环队列, 实际上每个节点是两个 void* 指针, 分别保存 next, prev 指针.实现原理libuv 的 queue 实现了 QUEUE_NEXT, ...

2018-08-26 22:23:17 3534

原创 libuv学习(五) : Processes

Introduction对于基于事件(event-based)的程序来说, 有个限制是没办法很好地利用多核,提高CPU使用率. 即使能够使用多线程编程来分发 handle, 但是每个 loop 还是只有一个线程.这时候, 使用多进程就能够分担 loop 的压力. 并且通过多进程 + 通信的方法, 会比 多线程 + 共享内存的方法更加安全, 易于开发.创建进程创建子进程创...

2018-08-22 21:15:35 1765 2

原创 Leecode: 658, 535, 32

658. Find K Closest Elements题目描述Given a sorted array, two integers k and x, find the k closest elements to x in the array. The result should also be sorted in ascending order.If there is a ti...

2018-08-21 23:49:01 174

原创 libuv学习(四) : Threads

Introduction当下主要有两种流行的线程库: Windows Threads 和 Posix 实现. libuv的thread API类似于 pthread 库.libuv 允许你通过开启线程并且在结束时收集结果来模拟异步操作,而实际上是阻塞操作所以 libuv 提供自己实现的 thread 方法,是为了能够让某些在 loop 中的 handle 能够在独立的线程中运行, 也提...

2018-08-21 17:17:53 920

原创 libuv学习(三) : Networking

Introduction把 libuv 核心原理弄懂之后(异步机制, 事件驱动, loop, handle), Network 部分其实也没什么难的了, libuv 相当于在 network 部分首先简化了一下系统的接口, 然后再加上了自己的异步机制.下面重点介绍一下在libuv中的 tcp 和 udp. 除此之外, libuv 还提供了诸如 DNS, Network Interface ...

2018-08-19 23:24:39 497

原创 libuv学习(二) : FileSystem

Introduction简单的文件系统读写是通过 uv_fs_* 函数 uv_fs_t 结构体实现的. libuv FileSystem Operation 和 Socket Operation 操作不一样, socket 操作使用的是异步非阻塞的方法, 而FileSystem Operation在内部使用的是阻塞的函数, 但是是通过异步的方法调用的读写文件获取文件描述符:...

2018-08-19 20:55:18 619

原创 libuv学习(一) : Basics of Libuv

Introductionlibuv强制异步,事件驱动编程.它的核心功能是提供一个事件队列和回调机制基于IO提醒和其他活动. libuv 提供核心的功能包括 timers, non-blocking networking support, asynchronous file system access, child processes等.Hello world以下代码建立了一个 uv_l...

2018-08-19 20:07:39 566

转载 同步IO,异步IO,阻塞IO,非阻塞IO

概念说明用户空间与内核空间进程切换进程的阻塞文件描述符fd缓存 I/OIO模式阻塞 I/O(blocking IO)非阻塞 I/O(nonblocking IO)IO 多路复用异步 I/O(asynchronous IO)总结blocking和non-blocking的区别synchronous IO和asynchronous IO的区别...

2018-08-18 11:29:17 1542

原创 Leecode: 352, 449, 714

352. Data Stream as Disjoint Intervals题目解决思路这道题解到一般的时候, 在 arr.push_back(Interval) 的时候, 突然想起了浅拷贝,深拷贝的问题.这里再来复习一遍.简单的来说,【浅拷贝】是增加了一个指针,指向原来已经存在的内存。而【深拷贝】是增加了一个指针,并新开辟了一块空间让指针指向这块新开辟的空间。【浅拷贝...

2018-08-15 23:46:45 159

原创 破解滑动验证码(selenium, opencv)

概述由于本人近期参加一个游戏比赛,然后有个拉票的环节,票高者得人气奖。又比较懒不想到处拉票麻烦别人。就想自己尝试着破解验证码然后来达到刷票的目的。这个也纯属娱乐,最后发现是不可行的。最终目标:实现自动点击红星,并且拖动完成验证自动点击并且获取图片自动模拟的过程通过 selenium 实现。 selenium安装过程自己上网找,很简单,还需要安装一个webdriverc...

2018-08-15 22:58:01 7556 4

原创 Leecode: 365, 825, 315

365. Water and Jug Problem题目You are given two jugs with capacities x and y litres. There is an infinite amount of water supply available.You need to determine whether it is possible to measure ...

2018-08-12 16:50:14 179

原创 数论 Primer

几个重要的数论模型:欧几里得定理(辗转相除法)int gcd(int a, int b){ return b==0?a:gcd(b, a%b);}扩展欧几里得(求ax+by = gcd(a,b)的特解)void e_gcd(LL a, LL b, LL &d, LL &x, LL &y){ if(b==0){ x ...

2018-08-12 13:49:38 319

转载 计算机网络基础知识总结(转)

阅读目录1. 网络层次划分2. OSI七层网络模型3. IP地址4. 子网掩码及网络划分5. ARP/RARP协议6. 路由选择协议7. TCP/IP协议8. UDP协议 9. DNS协议10. NAT协议11. DHCP协议12. HTTP协议13. 一个举例原文转自:http://www.cnblogs.com/maybe2030/p/4781555.html  计算机网络学习的核心内容...

2018-08-10 00:02:27 686

原创 kubernetes Volume:Mount fail (Bug)

Bug 1问题描述Pod无法成功创建,describe查看原因,是因为 mount failedWarningFailedMount MountVolume.SetUp failed for volume "kubernetes.io/nfs/86f87b17-9ab3-11e8-a7cb-000c2990bb8f-pv0001" (spec.Name: "pv0001") po...

2018-08-08 22:46:20 4449

原创 kubernetes 创建 Pod 失败 (Bug)

Bug 1问题描述standard_init_linux.go:178: exec user process caused “exec format error”解决方法在 entry_point.sh 文件中的头部加上 #!/bin/bash 就好Bug 2问题描述创建Pod失败,并且通过 kubectl describe 查看错误信息: Kuber...

2018-08-04 15:46:15 3110

原创 为github项目搭建自动制作镜像环境

简介这篇博客基于2018.7在制作的一款联网FPS PVE游戏的后台,整个后台也是使用c#进行搭建的。最近学习了一些云技术(k8s, docker相关),想把这些技术运用到游戏开发部署上来。 而这篇博客的目的,就是为了实现从 push Code 至 github 上 –> Docker Hub 自动编译并且生成 image 的过程为Github Repo编写Dockerfile...

2018-08-03 13:35:11 2248

原创 Docker入门

IntroductionDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口Docker 组成一个完整的Docker有以下几个部分组成:docker Client客户端Docker Daemon守护进程Docker Ima...

2018-08-03 12:01:06 294

原创 k8s 权威教程第一章demo(Bug)

Bug 1问题描述做Tomcat的例子,结果get pods一直显示没有资源?应用配置代码:apiVersion : v1kind : ReplicationControllermetadata : name : mysqlspec : replicas : 2 selector : app : mysql template : ...

2018-08-02 09:30:58 1739 6

原创 Kubernetes在游戏业务应用调研

游戏服务器现状普遍痛点更高并发、更高性能:大量玩家并发访问,对服务器运算能力、IO能力和稳定性有更高的要求PVE、PVP特性,对网络延迟的容忍度低攻击手段多、安全风险高:成为大流量DDoS攻击和CC攻击的首要对象攻击方式的变化多样,导致游戏停服、玩家流失;恶意注册、撞库盗号、外挂破解等严重影响游戏体验研发成本高、管理协同难:游戏行业竞争加剧,需要加快游戏产品上线速度,抢占市场;手...

2018-07-29 22:49:25 1112

原创 游戏后台架构发展历史及展望

综述本文探究了游戏后台架构的发展历史及展望。随着技术的进步,游戏需求的变化,游戏架构也在不断发生变化来满足越来越高的游戏需求。总体来说是需求在推动着架构的变化。本文最后也根据现在人们的游戏需求和现在业界技术情况,给出了后台架构展望。游戏后台架构发展历史第一代网游服务器最早的游戏服务器是1978年,英国著名的财经学校University of Essex的学生 Roy Tru...

2018-07-29 22:43:26 7415

转载 2017年中国游戏产业报告(简要)

2017 年中国游戏产业整体状况(简要)中国游戏市场规模中国游戏市场实际销售收入 2017 年中国游戏市场实际销售收入达到 2036.1 亿元,同比增长 23.0%。中国游戏细分市场占比 2017 年中国游戏市场中,移动游戏市场份额继续增加,实际销售收入 1161.2 亿元,占 57.0%;客户端游戏市场份额减少,实际销售收入 648.6 亿元,,占31.9%;网页游戏...

2018-07-28 11:21:36 3374

原创 Kubernetes数据流分析

以一个网页应用的访问为例首先在部署阶段,需要启动两个容器WebApp容器和Mysql容器。整个部署过程:启动Mysql,mysql-rc.yaml在之后给出,创建对应的Service启动myweb, myweb-rc.yaml在之后给出,创建对应的Service,并通过NodePort方式暴露服务通过浏览器访问网页此时,如果从外部访问服务,则流程如图:有三种访问...

2018-07-25 08:53:10 2788

原创 Kubernetes控制流分析

以部署一个应用为例例如执行以下命令:kubectl run httpd-app --image=httpd --replicas=2等待一段时间,应用部署完成.Kubernetes部署了deployment httpd-app,有两个副本Pod,分别运行在k8s-node1和k8s-node2。整个部署过程分析:补充两点:应用的配置和当前状态信息保存在etcd中,执...

2018-07-25 08:50:10 1639

原创 Kubernetes Volume

Volume(存储卷)Volume是在Pod中能够被多个容器访问的共享目录。k8s中的Volume与Pod的生命周期相同,但是与容器的生命周期不同。 Volume的使用比较简单,大多数情况下在Pod上声明一个Volume,然后在容器引用该Volume并Mount到容器里的某个目录上。k8s提供了丰富的Volume类型: 1. emptyDir: Pod分配到Node时创建,由k8s自动...

2018-07-25 08:47:38 337

原创 Kubernetes Basic

Create a Deployment要在k8s上部署容器化应用,需要创建一个k8s配置文件。 使用kubectl API来创建部署,创建部署需要指明所使用地容器镜像和创建数量。通过 kubectl run 来创建一个部署:--port指定了端口号Deployment vs ServiceDeployment的主要目的是管理相似的Pods,除此之外,升级pods也是通...

2018-07-22 11:01:08 202

原创 Kubernetes入门

简介是一个全新的基于容器技术的分布式架构领先方案。是Google Borg的开源版本。Google Borg是谷歌内部使用的大规模集群管理系统,它基于容器技术,实现资源管理自动化,以及跨多个数据中心的资源利用率的最大化Kubernetes(简称k8s)简化了负载均衡,部署实施的问题,不必再引入或者自己开发一个复杂的服务治理框架。 K8s是一个完备的分布式系统支撑平台,有完备的集群管理能力...

2018-07-17 22:03:38 239

原创 IBM Cloud Private (ICP):Installing

系统配置要求链接:ICP配置要求支持Docker版本默认端口集群安装准备配置集群在安装ICP之前,首先要决定两点:检查系统配置要求决定集群架构,并且获得所有节点的IP地址准备每个节点:确保默认端口没有被使用在每个节点配置/etc/hosts文件对于OpenStack环境, /etc/hosts是由cloud-init service管理,需要...

2018-07-17 19:24:22 989

游戏人工智能编程案例精粹-源码+电子书

游戏人工智能编程案例精粹-源码+电子书 有详细的案例,原链接崩溃,现整合资源发出来

2018-06-26

空空如也

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

TA关注的人

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