PHP设计模式 - 享元模式

运用共享技术有效的支持大量细粒度的对象 享元模式变化的是对象的存储开销 享元模式中主要角色: 抽象享元(Flyweight)角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口。那些需要外运状态的操作可以通过调用商业以参数形式传入 具体享元(ConcreteFlyweight)角色:实现Flyweight接口,并为内部状态(如果有的话)拉回存储空间。ConcreteFlyweight对象必须是可共享的。它所存储的状态必须是内部的 不共享的具体享元(UnsharedConcre
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

【网页加速】lua redis的二次升级

之前发过openresty的相关文章,也是用于加速网页速度的,但是上次没有优化好代码,这次整理了下,优化了nginx的配置和lua的代码,感兴趣的话可以看看上篇的文章: https://www.cnblogs.com/w1570631036/p/8449373.html 为了学习,不断的给自己的服务器装东西,又是logstash,又是kafka,导致主站网络负载、cpu消耗过大,再加上tomcat这个本身就特别占用内存的东西,只要稍微刷新一下网站,就能感受到蜗牛般的速度,实在受不了,前段时间给
分类: 其他 发布时间: 06-25 23:08 阅读次数: 3

linux-command

xshell 使用 Windows和linux间传输文件:winscp软件 利用xshell: 在linux端:# yum install lrzsz 在Xshell连接属性中的设置上传协议为Zmodem和接受的文件路径等 # rz ---上传文件到Linux端 # sz filename ---发送文件到windows端 windows远程连接: 打开允许远程协助:计算机-->属性-->远程设置-->... CMD:mstsc-->... 网络属性管理 IP netmask geteway
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

【从零开始搭建自己的.NET Core Api框架】(三)集成轻量级ORM——SqlSugar:3.1 搭建环境

首先,需要向项目引入SqlSugar,方法有两种: 1)直接使用Nuget导包 2)Github下载源码,然后项目引用 这里选择了第二种。 引入成功后,我们需要先按照自己的习惯配置一下环境,比如数据库连接字符串怎么放,怎么方便的利用SqlSugar进行CRUD。 先看数据库连接字符串,我将它放到了BaseDBConfig.cs,如图: (有人习惯把它放到系统配置文件里,.NET Core环境下取消了web.config机制,配置统一采用json文件进行存储,关于利用json读写配置信息后面拿出
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

卷积神经网络学习(一)

一、卷积的物理意义 卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。 在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。这正是单位响应是如此重要的原因。 二、卷积的另外解释 比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号,脉冲),于是你的脸上会渐渐地(贱贱地)鼓起来一个包,你的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。下面还需要
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

PHP设计模式 - 策略模式

策略模式主要为了让客户类能够更好地使用某些算法而不需要知道其具体的实现。 <?php interface Strategy { // 抽象策略角色,以接口实现 public function do_method(); // 算法接口 } class ConcreteStrategyA implements Strategy { // 具体策略角色A public function do_method() { echo 'do method A'
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

二零一八年年底计划提一步车

观摩中,请等待,,,,
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

system及系统参数优化

系统调优 优先级:0~139 1~99:实时优先级 100~139:动态优先级 CPU CPU隔离: vim /etc/grub.conf kernel ...... lsolcpus=cpu_number1,cpu_number2 ... 定义中断smp affinity: echo cpu_number1,cpu_number2... >/proc/irq/*/smp_affinity 此处的CPU应该为lsolcpus中定义集合集合之外的其它CPU CPU调度策略 SCHED_FIFO(
分类: 其他 发布时间: 06-25 23:08 阅读次数: 3

tomcat - 2

tomcat 官方站点:http://tomcat.apache.org POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为POSIX ) POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称 POSIX标准意在期望获得源代码级别的软件可移植性。 换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系
分类: 其他 发布时间: 06-25 23:08 阅读次数: 2

排序算法总结1

下面介绍的所有排序默认都为非递减排序! 简单排序 简单排序算法主要包括冒泡排序、选择排序、插入排序以及由插入排序改进而来的希尔排序,其时间复杂度都为 nlognnlognnlogn 冒泡排序 算法思想: 属于暴力解法 从第一个元素开始,两两比较大小,如果后者 &amp;amp;amp;lt; 前者,则交换两者顺序,以此类推,直到最大的元素“冒泡”到它的最终位置 代码如下: #include...
分类: 其他 发布时间: 06-25 23:08 阅读次数: 3

渲染管线理解2

1 视锥视锥把空间限制在一个6面的突面体,在这个空间的物体会被渲染,下图是一个截断的金字塔。 视图窗口大小,视角,视图距离。知道任意2个计算第三个变量。 视图窗口大小固定,调整视角(fov),视角越大,视图距离(focus length)越小。 视角固定,调整视图距离,视图距离越大,视图窗口越大。视锥通常有一个近平面,近平面距离一般不为0,因为之后做除法会有问题,在投影矩阵中讲。 远平面是可
分类: 其他 发布时间: 06-25 23:07 阅读次数: 2

渲染管线理解1

渲染管线整个流程如下: 首先是顶点输入,通过模型变换,相机变换和投影变换变换到一个标准坐标系中ndc(x∈[−1,1]x\in[-1,1],y∈[−1,1]y\in[-1,1],z∈[−1,1]z\in[-1,1](或者[0,1])),但是光有顶点数据是不够的,需要把它组装成点或者线或者三角形片元。然后把数据从ndc坐标转换到屏幕坐标形成片元,最后插值属性(比如颜色,深度值等)。模型变换模型变
分类: 其他 发布时间: 06-25 23:07 阅读次数: 2

渲染管线理解3

裁剪在规格化设备坐标中,只有在x∈[-1,1],y∈[-1,1],z∈[-1,1]内的三角形才会被渲染。即在视图坐标中在视锥内的三角形会被渲染。一般平面裁剪假设是直线裁剪,PR会被裁剪,平面为ax+by+cz+d=0。法向量指向内侧(PQ方向)。即ax+by+cz+d>0的点在内侧。 存在一个t使得平面上一点 R=P+t(Q-P),记v=Q-P 0=a(Px+tvx)+b(Py+tvy)+c(
分类: 其他 发布时间: 06-25 23:07 阅读次数: 2

渲染管线理解4

齐次裁剪通过透视投影得到的点[x齐次,y齐次,z齐次,w][x_{齐次},y_{齐次},z_{齐次},w]形成的三角形片元,裁剪是在齐次}坐标中做裁剪的,即它是一个四维空间的裁剪。而不是经过透视除法后的立方体空间[x齐次/w,y齐次/w,z齐次/w,1][x_{齐次}/w,y_{齐次}/w,z_{齐次}/w,1]。 假设view空间中点P0(x,y,z)P_0(x,y,z)投影后齐次坐标P1(x′
分类: 其他 发布时间: 06-25 23:07 阅读次数: 3

游戏裁剪

裁剪能够极大提高渲染效率。PVS对于静态场景,我们可以先把场景立方体分割成网格(grid),即n*m*h个grid,先计算好在每个grid上所有角度可见的mesh(剔除物体完全被前面物体挡住的mesh),记录所有可见的mesh编号,如果相机在这个位置上,只要把这些可见的mesh进行下一步裁剪(比如视锥裁剪,去除不再视锥内的物体)八叉树(Octree)在进入视锥裁剪前,可以把空间进行分割。比如把空间分
分类: 其他 发布时间: 06-25 23:06 阅读次数: 3

3ds Max导出OBJ的mtl贴图路径不正确

之前流程是写了一个3DSMAX插件把游戏的场景直接导出为自己定义的格式的文件,包含了顶点数据,三角形数据,贴图数据等。现在把插件从3DMAX上分离出来,先通过3DMAX导出OBJ,然后再把OBJ导出为自定义的格式。3DSMax导出的材质mtl文件漫反射贴图路径不正确一开始以为是一个Standardmaterial对应漫反射的Map名字一样但是贴图路径不一样导致了OBJ导出出错。写了一个把同一个Map
分类: 其他 发布时间: 06-25 23:06 阅读次数: 3

人物换装和捏脸

1 换装目前的换装方案主要有: 材质换装,比如换贴图和shader 挂点,在角色上制作挂点,然后挂上武器飘带等 更改蒙皮(Unity中为Skin Mesh Render),只要所有的蒙皮基于同一套骨骼开发,就支持换装。在换装的时候SkinMeshRender重新复制bone信息就可以完成蒙皮的绑定。通过合并Mesh减少Drawcall。 uma系统。DNA系统(设置骨骼缩放系数和长度)。 换装实现实
分类: 其他 发布时间: 06-25 23:06 阅读次数: 3

C笔记(三)——进制与进制转换,原/补码

进制转换一、二进制数:位、字节与字    位:只有0、1两种状态,简称bit;    字节:由8个二进制数组成,称为8位,简称BYTE    字:由两个字节组成,简称DWORD。1字=2字节=32位    例如:U盘的单位是GB(GBYTE),字节。网速Mb,bit。二、八进制    以8为基数的数制系统(0-7),C语言中0表示八进制,即0123表示八进制123。-011表示八进制-11,即十进...
分类: 其他 发布时间: 06-25 23:05 阅读次数: 3

C笔记(四)——整型数据

整型变量的分类一、int整数类型1.1 int常量、变量    int表示的是4个字节,32位的二进制整数,在内存中占据4个字节的空间。取值范围在-2^31~(2^31)-11.2 printf输出int值    %d:输出一个有符号的10进制整数;    %u:输出一个无符号的10进制整数;注:待输出数是正数时,结果与其他结果相同。待输出数是负数时,%u会把负数的补码二进制符号位当成普通的数来计...
分类: 其他 发布时间: 06-25 23:05 阅读次数: 3

C笔记(五)——char字符型数据

1、字符常量、字符变量    字符常量:用单撇号括起来的一个字符。如'a'、‘$’、‘?’等。    字符变量:用来存放字符常量,只能存放一个字符。如:char c1;c1='a';    char的本质就是一个整数,一个只有一个字符的整数。2、printf输出char    %c:表示输出一个字符,而不是一个整数。3、转移字符及其作用(打印不出来的char转义符)    \n:换行,将当前位置移...
分类: 其他 发布时间: 06-25 23:05 阅读次数: 2