自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (5)
  • 收藏
  • 关注

原创 node.js 之 Redis

redis数据库1、 Redis是一个key-value类型的内存数据库,而key全部都是 字符串 、哈希表(map)、列表(list)、集合(set)、有序集。 2、 Redis是通过MULTI/DISCARD/EXEC/WATCH这4个命令来实现事务功能。事务提供了一种“将多个命令打包,然后一次性、按顺序执行”的机制,在事务完成之前,客户端的其他命令都是阻塞状态。node 使用redis安

2016-07-21 00:40:36 802

翻译 架构,性能和游戏

在我们一头扎入模式之前,我想先讲一些对软件架构和其在游戏上的应用的理解, 也许能帮你更好的理解这本书的其余部分。 至少,在你被卷入一场关于软件架构有多么糟糕(或多么优秀)的辩论时, 这可以给你一些武器支援。软件架构是什么?如果你把本书从头到尾读一遍, 你不会找到在3D图形背后的线性代数或者游戏物理背后的微积分。 这书不会告诉你如何用α-β修剪你的AI树,也不会告诉你如何在音频中模拟房间中的混响。相

2016-06-02 17:36:21 5740 1

转载 nodejs + redis/mysql 连接池问题

连接池是必须的么?连接池的作用主要是较少每次临时建立连接所带来的开销。初步一看,nodejs运行单线程上,它不能同时使用多个连接,乍一看是不需要连接池的。但是这只是我们初步下意识的感觉,下面我们详细分析来看看这个结论对是不对。先从简单的redis开始。redis服务器也是运行在单线程上的。俩都是单线程,看起来更加坚定不需要连接池的结论了。从详细的图像来看看nodejs 连接 redis用连接池有没有

2016-05-09 12:50:03 1701

转载 javascript 中的call、apply、bind

一、call()和apply()方法1.方法定义call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 this

2015-12-02 11:59:31 886

转载 javascript使用注意的问题

1、在对大量数据作处理时,尽量避免循环嵌套。 因为循环嵌套的处理时间会随着数据量的增加成指数级增长,所以应尽量避免。遇到这种情况,如果没有更好的办法,一般采取的策略是以空间换时间,即建立一张二级循环数据的Hash映射表。当然,还要具体情况具体分析。还有一点要说的是,某些方法本身就是一个循环体,如Array.sort()(该方法应该是用了两层循环实现),在使用的时候需加注意。 2、尽量

2015-10-29 18:39:13 401

原创 js中的匿名函数和闭包总结篇

匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数。一.匿名函数//普通函数function box() { //函数名是box return 'Lee';}//匿名函数function () { //匿名函数,会报错 return 'Lee';}//通过表达式自我

2015-10-29 17:50:33 3275 3

原创 Javascript中的面向对象

ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。一.创建对象创建一个对象,然后给这个对象新建属性和方法。var box = new Object(); //创建一个Object对象box.name = 'Lee';

2015-10-26 18:02:43 404

原创 变量、作用域及内存

JavaScript的变量与其他语言的变量有很大区别。JavaScript变量是松散型的(不强制类型)本质,决定了它只是在特定时间用于保存特定值的一个名字而已。由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变。一.变量及作用域1.基本类型和引用类型的值ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值。基本类型值指的是那

2015-10-25 18:03:32 441

原创 Function类型

在ECMAScript中,Function(函数)类型实际上是对象。每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针。一.函数的声明方式1.普通的函数声明function box(num1, num2) { return num1+ num2;}2.使用变量初始化函数var box= functio

2015-10-25 16:55:14 450

原创 js基础知识总结篇

javascript在学习过程中的重点易忘的部分的总结~基本类型                     注意: JavaScript 不区分整数值和浮点数值,所有数字在 JavaScript 中均用浮点数值表示。     0.1+ 0.2 = 0.30000000000000004 单元运算符 + 也可以把数字字符串转换成数值 如果给定的字符串不存在数值形式,函数会返回一个特殊的值 NaN

2015-10-16 20:55:06 2491 1

原创 实习总结

实习请假回学校写毕设论文,终于可以停下来给自己一个交代, 简单的总结一下这段时间在公司学习到的东西,查漏补缺。

2015-09-04 20:39:31 681

转载 Cocos2D-X设计模式:委托模式

一、前言在讨论cocos2d-x里面的委托模式之前,先来讲讲什么是委托,以及c++里面如何实现委托。委托通常还会跟回调、闭包联系在一起,而委托和委托模式也有一点区别。下面先看看委托模式的例子一个打印机类的委托模式实现:class RealPrinter { // the "delegate"public: void print() { //do something

2015-09-02 09:42:22 1051

转载 Cocos2D-X设计模式:中介者模式

1、应用场景谈到中介者模式这个词,我马上就想到了cocos2d-x里面的CCDirector类。这个类除了应用了单例模式,还应用了中介者模式。Why?因为它封装了Scheduler、ActionManager、TouchDispatcher、KeypadDispatcher和Accelerometer这五个对象的交互。它使得这几个对象之间的交互不需要显式地相互引用,使其耦合度变低。当然更多的是使得我

2015-09-01 17:31:12 544

转载 Cocos2D-X设计模式:观察者模式

1、应用场景前面在介绍单例模式的时候,提到了一个类NotificationCenter,它除了应用单例模式以外,还应用了观察者模式。NotificationCenter类是观察者模式中的目标对象,而NotificationObserver则是观察者。(注意目前,cocos2d-x 3.0已经把该类deprecated了,替代方案是使用EventDispatcher的Custom Event来替代)一

2015-09-01 17:10:36 703

转载 Cocos2D-X设计模式: 组合模式

1、应用场景Cocoa编程框架APPKit和UIKit都应用了组合模式,各种各样的View及其派生类组成了一棵树状结构的层级视图,而这里面就应用了组合模式。当然,Cocos2D-x里面的Node组织方式也采用的是这个方法,最终游戏界面中的Nodes也会形成一棵树。说到树,我们马上就会想到树根,树干和树叶。一棵树一般只包含一个根,若干树干和大量的叶子。同时,树干长在树根上,树叶长在树干上。对应于Coc

2015-09-01 16:00:28 551

转载 Cocos2D-X设计模式:防御式编程模式

声明:防御式编程是提高程序代码质量的一种手段,它不能算是真正意义上的模式。但是,这里,我还是要给它冠之以“模式”二字。原因有三:cocos2d-x的框架源代码大量采用了防御式编程技术,用来确保框架的代码质量和稳定性。标题党,引起大家对于防御式编程的重视。特别是当大家给cocos2d-x贡献源代码的时候,更应该要注意保证代码质量。防御式编程非常重要,运用得当可以减少被bug折腾的时间。1.应用

2015-08-28 16:05:53 391

转载 Cocos2D-X设计模式:外观模式

1.应用场景Cocos2d-x里面有一个非常明显的地方使用了外观模式,它就是SimpleAudioEngine。因为它为CocosDenshion这个子系统的一组接口提供了一个一致的界面,同时定义了一个高层接口,方便客户使用该子系统。对于大多数用户来讲,游戏中操作声音,无非就是播放背景音乐和音效。CocosDenshion这个子系统封装了OpenAL,屏蔽了OpenAL操作声音的低级API。它提供了

2015-08-28 15:51:47 722

转载 Cocos2D-X设计模式:管理者模式

*管理者(Manager)就是专门负责管理其它类的实例的类,比如Cocoa里面的NSFontManager、NSInputManager、NSFileManager和NSLayoutManager类。此模式和“二段构建模式”一样,也没有出现在GoF的23个设计模式中,但是《Cocoa设计模式》一书中有提及 管理者模式,大多数时候都被实现成一个单例。然后会在程序各个地方被使用到,除非是万不得已,建

2015-08-28 14:59:02 563

转载 Cocos2D-X 设计模式:二段构建模式

所谓二段构建,就是指创建对象时不是直接通过构建函数来分配内存并完成初始化操作。取而代之的是,构造函数只负责分配内存,而初始化的工作则由一组合起来,完成最终对象的构建。因为在《Cocoa设计模式》一书中,把此惯用法称之为“Two Stage Creation”,即“二段构建”。Cocos2D-X 3.0以后的二段构造更纯粹了,它把所有类的构造函数、析构函数以及init方法全部变成protect

2015-08-28 14:45:02 649

转载 Cocos2D-X设计模式:单例模式

本系列文章将按照如下思路进行模式挖掘: – 找出某个设计模式的应用场景(类、类结构、对象结构,必要时结合UML类图) – 分析为什么要使用此模式(即设计决策) – 使用此模式的优缺点是什么(任何事务都有两面性,设计模式也不例外) – 此模式的定义及一般实现(这个在GoF的经典书籍里面有) – 在游戏开发中如何运用此模式(自己对于模式运用场景的理解) – 此模式经常与哪些模式配合使用(这个也基本是从G

2015-08-28 14:16:20 1854

转载 详解 Android 的 Activity 组件

Activity 的生命周期和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理。与 MIDlet 不同的是安装在 android 中的所有的 Activity 都是平等的。Activity 的状态及状态间的转换在 android 中,Activity 拥有四种基本状态:Active/Runing一个新 Activity 启动入栈后,它在屏幕最

2015-08-28 10:53:36 75

原创 win32(十五)

一 线程局部存储 Thread Local Storage 1 由于多个线程使用同一个变量,各个线程 都对变量进行操作,那么变量的值会被不同 线程操作覆盖。 通常 变量A <-- 线程A <-- 线程B TLS 变量A <-- 线程A 变量A <-- 线程B 2 TLS

2015-08-25 17:54:46 302

原创 win32(十四)

一 Windows进程 1 Windows进程 进程一个容器,包含了应用程序实例的各种 资源。Windows多任务的操作系统,因此可以 同时执行多个进程。 2 Windows进程的一些特点 2.1 进程中包含了执行代码等资源。 2.2 进程都具有私有的地址空间。 2.3 每个进程都有一个ID,标识进程。 2.4 每个进程都有自己的安全属

2015-08-25 17:53:45 305

原创 win32(十三)

Windows的内存管理一 地址空间 1 地址空间 一个程序最大的寻址范围。对于Win32操作系统 最大的寻址范围是2的32次方,0-0xFFFFFFFF。 这个寻址范围由CPU决定。CPU的寻址范围越大, 程序难度降低。 2 地址空间的划分 通常情况下: 2.1 用户空间 地址范围 0 - 0x7FFFFFFF(2G),运行 应用程序

2015-08-25 17:52:42 251

原创 win32(十二)

一 Windows卷(Volumn) 1 卷的获取 GetLogicalDrives 返回一个DWORD值,这个值 的每个位代表是否存在相应的卷 GetLogicalDriveStrings 获取一个所卷的盘符 的字符串 DWORD GetLogicalDriveStrings( DWORD nBufferLength,//BUF

2015-08-25 17:51:45 341

原创 win32(十一)

一 Windows的库 由于项目的复杂程度,或者为了提高代码的 重用率等等,所以才引入了库程序。 库包含两种: 1 静态库:扩展名为LIB的文件,是不能被 加载的程序,可以理解为目标程序的 归档。 2 动态库:扩展名是DLL的文件,是可以被 应用程序加载的程序。二 静态库 1 静态库的特点 1.1 目标程序的归档

2015-08-25 17:49:40 277

原创 win32(十)

一 组合框 ComboBox 1 组合框的样式 1.1 简单组合框 CBS_SIMPLE 1.2 下拉式组合框 CBS_DROPDOWN 能输入或者从下拉列表中选择 1.3 下拉列表式组合框 CBS_DROPDOWNLIST 只能从下拉列表中选择 2 组合框的使用 2.1 组合框的创建 窗口类名称是 COMBOBOX, 使用

2015-08-25 17:48:21 333

原创 win32(九)

一 对话框 1 对话框的分类 2 对话框的基本使用方式 3 对话框资源 4 有模式对话框的使用 5 无模式对话框的使用 5.1 添加对话框资源 5.2 定义窗口处理函数 BOOL CALLBACK DialogProc( HWND hwndDlg, // handle to dialog box UIN

2015-08-25 17:47:05 432

原创 win32(八)

一 位图的使用 1 位图 - 通过保存图像上每个点的颜色,生成相应 的位图文件。 光栅图 - 可以理解为图像点阵的保存 矢量图 - 可以理解为绘图命令的保存 2 位图资源的使用 2.1 加载位图资源 HBITMAP LoadBitmap( HINSTANCE hInstance, //位图资

2015-08-25 17:45:29 285

原创 win32(七)

一 Windows绘图 1 图形绘制 1.1 图形绘制的方式 获取到绘图句柄-设备描述表(DC),使用相应 的绘图的API,在设备上绘制图形. 1.2 颜色 R\G\B三色, 每种颜色8位, 共24位颜色. 32位颜色: 颜色数量24位颜色, 多出来的8位 表示灰度. 16位: 颜色数量2的16次方.

2015-08-25 17:44:01 281

原创 win32(六)

一 系统菜单 1 执行系统提供的窗口命令,例如最大化、关闭 等命令。本质上和普通菜单一样,所以我们也 可以在程序中使用这个菜单 2 系统菜单的使用 2.1 获取系统菜单 GetSystemMenu HMENU GetSystemMenu( HWND hWnd, //要获取的窗口句柄 BOOL bRev

2015-08-25 17:42:08 293

原创 win32(五)

一 鼠标消息 1 鼠标消息 1) 基本鼠标消息 WM_LBUTTONDOWN 左键按下 WM_LBUTTONUP 左键抬起 WM_RBUTTONDOWN 右键按下 WM_RBUTTONUP 右键抬起 WM_MOUSEMOVE 鼠标移动 2) 双击消息 WM_LBUTTONDBLCLK 左键双击

2015-08-25 17:41:00 279

原创 win32(四)

一 Win32消息机制 1 消息机制 过程驱动:程序是按照我们预先定义好的顺序 执行,每执行一步,下一步都已经按照预定 的顺序继续执行,直到程序结束。 事件驱动:程序的执行顺序是无序的。某个时间 点所执行的代码,是由外界通知。由于我们 无法决定用户执行顺序,所以代码的执行也是 无序。 Win32的消息机制 - 事件驱动

2015-08-25 17:39:23 294

原创 win32(三)

一 窗口注册和创建1 Win32窗口程序创建步骤1.1 WinMain入口函数的定义1.2 WindowProc函数的定义1.3 注册窗口类 RegisterClass/RegisterClassEx1.4 创建窗口 CreateWindow/CreateWindowEx1.5 窗口的显示和刷新 ShowWindow/UpdateWindow1.6 消息处理 GetMess

2015-08-25 17:35:08 279

原创 win32(二)

一 NMAKE和Makefile 1.1 NMAKE - 命令解释器,根据Makefile文件中 定义的脚本,完成项目的编译等操作。 1.2 Makefile - 定义编译/链接等脚本语言。 1.3 Makefile文件的编写 1.3.1 基本语法规则 window.exe:window.obj // 依赖行 cl.exe window.c /c

2015-08-25 17:33:36 217

原创 win32(一)

Win32 Windows编程 1 Windows编程基础 2 Windows文字的编码 3 窗口程序 4 窗口消息 5 菜单和加速键 6 绘图 7 对话框 8 基本控件 .....一 Windows编程基础 1 Win32应用程序的基本类型 1.1 控制台程序 不需要完善的Windows窗口,可以使

2015-08-25 17:26:10 325

转载 cocos3.x 优化提升渲染速度

COCOS2DX 3.0 优化提升渲染速度 Auto-batching最近在看COCOS2DX 3.0的Auto-batching合批与Auto Culling动态缩减功能简介 在游戏的绘制渲染中,往往消耗很多资源和内存,当绘制精灵数量越多,游戏的卡顿会很明显,为了优化和提升渲染效率。Cocos2d-x为我们提供了Auto-batching和SpriteBatchNode。 A

2015-08-24 15:53:21 850

转载 cocos3.0+ shader

cocos2d的shader都是共用的, 存放在 GLProgramCache 中。 当setGLProgram() 的时候是从GLProgramStateCache 中寻找是否有这个shader的State, 有就返回,这个也是共用的,任意一个GLProgramState修改了, 都会影响到使用这个shader的对象添加shader的方法:先编写shader: (直接复制cocos/rende

2015-08-24 15:15:29 979

原创 shader三种变量类型(uniform,attribute和varying)

1.uniform变量在vertex和fragment两者之间声明方式完全一样,则它可以在vertex和fragment共享使用。(相当于一个被vertex和fragment shader共享的全局变量) uniform变量一般用来表示:变换矩阵,材质,光照参数和颜色等信息。 以下是例子:uniform mat4 viewProjMatrix; //投影+视图矩阵uniform mat4 vi

2015-08-20 17:27:09 570

转载 cocos2dx 3.x bindings-generator(Part two)

本想利用 cocos2d-x 自付的工具 bindings-generator 来将专案内的几个自写控件 binding 到 lua 下便于在 script 下控制,结果……真是他喵的坑啊….QAQ cocos2d-x 3.0rc0 范例的 simple_test 的环境太单纯了,并且没有用到 cocos2d 内的任何物件,故!在撰写自己的 .ini 档时会遇上一狗票问题,于是要回头参考 tool

2015-08-20 10:16:21 1047

docker性能.pdf

An Updated Performance Comparison of Virtual Machines and Linux Containers IBM research

2020-01-22

七周七并发模型 高清完整版 带书签

高清 带标签 七周七并发模型 非常好的资料 !

2018-12-31

Debug.Hacks中文版_深入调试的技术和工具

Debug.Hacks中文版_深入调试的技术和工具 gdb调试内核调试用户态调试必看! 非常好的资料 有书签

2018-12-31

七周七并发模型

很赞的一本书 高清有目录

2016-03-24

空空如也

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

TA关注的人

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