自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流子的专栏

洋甘菊便便~~

原创 游戏跨服架构进化之路

1.背景虽然游戏市场竞争激烈,产品格局变动较大,但游戏产业一直处于稳步增长阶段,无论是在端游,页游,手游还是已经初露端倪的H5游戏。可以预见,游戏类型中,MMOARPG游戏仍然会是引领市场的主流趋势,贡献着大部分流水,市场上也仍然在不断涌现精品。研发团队对MMO游戏的探索从来未间断过,从付费模式的改变,到题材多元化,次时代的视觉效果,更成熟的玩法及数值体系,本文主要针对跨服玩法上的探索和...

2017-03-02 14:46:41 11491 17

原创 Zstandard (zstd)压缩算法在JAVA上的使用

Zstandard是facebook厂商提供的一种高压缩率的实时压缩算法,他在压缩比和压缩速度上做了很好的平衡,同时还提供高速的解码器,针对小数据,也提供了一种叫做字典压缩算法,从样本中可以创建出字典集合数据,Zstandard库以BSD协议方式开源。以下是基准测试数据对比:压缩算法 压缩比 压缩速度 解压缩速度 zstd 1.4.5 -1 2.884 500 MB/s 1660 MB/s zlib1.2.11 -1 2.743 90 MB..

2020-07-28 17:37:41 39

原创 JUnit5使用总结

看一下几个注解在junit4和junit5版本不同的写法:junit4 junit5 使用场景 @BeforeClass @BeforeAll 在当前类的所有测试方法之前执行。注解在【静态方法】上 @AfterClass @AfterAll 在当前类中的所有测试方法之后执行。注解在【静态方法】上 @Before @BeforeEach 在每个测试方法之前执行。注解在【非静态方法】上 @After @AfterEach ...

2020-07-27 18:31:32 36

原创 如何检测出redis的哪些key在消耗内存

今天发现测试环境Redis进程被OOM killer了,所以,直觉就是优先找出消耗内存的罪魁祸首key。redis-rdb-tools是专门用来干这活的,我们先来了解下:一、rdbtools工具介绍源码地址:https://github.com/sripathikrishnan/redis-rdb-tools/redis-rdb-tools 是一个用python开发的用于解析 rdb 文件的工具,在解析的时候,它会生成类似于xml sax解析器的事件,在内存检测方面非常有效它主要有...

2020-07-16 22:25:45 79

原创 Jenkins极速入门
原力计划

Jenkins简介  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。官网地址为http://jenkins-ci.org/Jenkins部署环境  1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。  2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。  3.gradle或者ant打包  以上是自动化部署j..

2020-06-06 18:51:23 143

原创 Ansible极速入门

官方定义:"Ansible is Simple IT Automation"——简单的自动化IT工具Ansible 为运维自动化工具,一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。Ansible 特点:部署简单,只需在主控端部署 Ansible 环境,被控端无需做

2020-06-05 18:15:30 99

原创 Saltstack极速入门
原力计划

saltstack介绍Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯,主要功能有远程执行,配置管理。Saltstack官方文档Saltstack原理Salt使用server-agent通信模型,服务端组件被称为Salt master,agent被称为Salt minionSalt master主要负责向Salt minions发送命令,然后聚合并显示这些命令的结果。一个Salt master可以管理多个mi

2020-06-03 20:37:56 114

原创 如何用JAVA调用服务器系统指令
原力计划

java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。在java中,RunTime.getRuntime().exec()就实现了这个功能。用法: public Process exec(String command)//在单独的进程中执行指定的字符串命令。 public Process exec(String [] cmdArray)//在单独的进程中执行指定命令和变量 public Process exec(String ...

2020-05-13 18:07:29 134

原创 如何在linux搭建FTP服务

安装yum -y install vsftpd创建个用户useradd -s /sbin/nologin -d /data/client/chess ooxxpasswd -l ooxx然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录

2020-05-12 15:40:10 64

原创 域名各种记录

A记录普通的域名和IP映射CNAME您的域名接入 CDN 后,系统会为您自动分配一个以.cdn.dnsv1.com为后缀的 CNAME 域名,可在 CDN 控制台域名管理页查看。CNAME 域名不能直接访问,您需要在域名服务提供商处完成 CNAME 配置,配置生效后,即可享受 CDN 加速服务。TXT用于手动DNS验证...

2020-05-09 22:39:58 100

原创 游戏分享总结

网易伏羲《图谱反外挂:游戏中异常交易检测》 玩家行为特征分析Gold Farmer IP,设备类似,资源经常卖给同一个bankerGold banker ,和其他玩家交易频繁,交易关系很多,聊天关系很多...

2020-03-18 19:44:11 87

原创 FineBI使用总结

这篇文章为FineBI使用中遇到的问题总结1.数据库查询出来的中文字段为乱码,FineReport关于Linux下字体乱码终极解决方案帮助文档

2020-03-01 00:15:47 690

原创 Windows Builder 使用总结

从Eclipse MarketPlace 下载Windows Builder所有控件的实例如下:https://www.eclipse.org/swt/snippets/1.如何提取可执行文件exe的图标 /** extract the exe file's icon */public static Image getImage4exe(String path) ...

2020-01-10 14:13:04 370

原创 如何制作加密的JAR包

//TODO ...agentlibhttps://github.com/core-lib/xjar

2020-01-09 10:54:17 237

原创 DFA搜索算法使用总结

因为做推荐系统时,要对聊天,心愿,搜索结果做关键词提取,那么就需要找一个匹配结果好,性能优的关键词搜索算法,于是就找到了DFA关键词过滤算法,DFA即Deterministic Finite Automaton,也就是确定有穷自动机,它是是通过event和当前的state得到下一个state,即event+state=nextstate。代码实现:/** * 构建搜索树 * @p...

2020-01-08 19:51:16 153

原创 如何导出github项目并生成jar包

1.获取项目地址:https://github.com/nguyenq/tess4j.git2.import->git->project from git->clone URI->选择master->修改导出的项目地址,比如D:\workspace\trunk\tess4j->next->finishimport using the New P...

2019-12-31 15:44:10 925

原创 考研,那段日子……

我不是一个聪明的人,也不算是一个优秀的学生。然而现在已在窗明几净的实验室里跟着导师忙碌地做课题了。偶尔也会掀起窗帘看看外面的风景,看到学弟学妹们因考研而紧张又[猪批]忙碌的身影,除了庆幸自己已站在了这里外,也不免想起去年那段日子,我也是那楼下忙碌身影中的一个,那情形仿佛就在昨天。在大学期间,我在班级里学习成绩不怎么优秀,属中下游水平;四级考前的3个学期的英语考试我挂过两次;而英语六级考则考了三...

2019-12-19 10:24:39 268 3

原创 神器Arthas使用小结

Arthas官方主页如果某个类没被加载器加载,jad反编译是读不到代码的windows 下执行attach.dll要放到JRE的bin下

2019-11-29 14:41:21 307

原创 Python使用小结

安装:1.JDK 1.8 官网2.Python python-3.6.8-amd64 官网3.Eclipse Jee 2018-12 IDE4.PyDev 插件4.Pygame游戏库5.绘图库的使用6.svn 团队协同开发工具 SVN7.插件:Eclipse Explorer参考例子:python学习小例子1.编码前为了保证不至于乱码问题在文...

2019-11-15 16:07:13 189

原创 谈谈游戏服务器单区QPS的计算

所谓 QPS,query per second每秒查询率QPS是对一个特定的服务器在规定时间内所处理请求量的标准。原先是针对数据库的一个衡量标准,渐渐被引用到了应用服务器的性能衡量上。QPS = 并发量 / 平均响应时间并发量 = QPS * 平均响应时间那怎么通过性能监控图来推算出大致的QPS呢?下面我们来看下这张图(一分钟统计一次),在单区游戏服导量高峰,3500在线,外网...

2019-11-11 16:44:06 261

原创 系统内存占用过高原因分析

发现内存占用快达到了50%,但实际上进程列表中却未有显示,分析发现,占用较高的话,是正常的现象,大部分的占用都被系统的cache占用,6138M,这部分内存(系统缓存)随时可以被回收的,也可以主动触发被回收。echo 3 > /proc/sys/vm/drop_caches...

2019-10-14 14:48:26 222

原创 MAT(Memory Analyzer)使用总结

unreachable Objects Histogram:可被回收的对象,但是现在仍然在内存当中Shallow Heap指这个对象它自己占了多少内存,Retained Heap指在这个引用链之上,这些对象总共占了多少内存with outgoing references:这个类引用到了哪些类with incoming references:这个类被哪些类所引用在查找内存泄露的过程中,...

2019-09-29 15:36:27 339

转载 DragonBones骨骼动画事件系统详解

DragonBones 本身并不实现事件派发,动画事件和自定义事件的派发与接收都依赖引擎的事件系统,这样可以使得 DragonBones 的事件融合到所支持的各个引擎的事件系统之中。在 Egret 中,DragonBones 是依赖 EgretArmatureDisplay 来派发和接收事件的,所以通过对其进行事件监听,就可以收到所有来自骨架的动画事件和自定义事件(更多关于 Egret 的事件...

2019-07-17 14:34:19 1948

原创 JStorm使用总结

JStorm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,JStorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker。因此,从应用的角度,JStorm应用是一种遵守某种编程规范的分布式应用。从系统角度, JSto...

2019-04-24 16:57:32 666

原创 帧同步总结

1.为了方便处理,所有的逻辑帧都是等服务器返回后执行,暂时不做预测等处理。客户端的每次操作不会立即生效,而是上传给服务器,客户端执行操作的时间都收到服务器发送的为准,服务器保证的是所有客户端都以同一帧执行该操作。2.逻辑帧和渲染帧分离,像王者荣耀逻辑帧15帧,渲染帧30帧或者60帧帧锁定同步(Lock step sync)1.客户端定时(比如50毫秒)上传操作控制信息,大家都流畅的...

2019-04-19 14:55:45 1277 1

原创 如何在egret项目中加入vconsole打印日志

在release版本中,1.在index.html<script src="js/vconsole.min.js"></script><script>var vConsole = new VConsole();vConsole.showSwitch();vConsole.show();</script>把vconsol...

2019-03-08 15:00:35 914

原创 如何制作游戏微端

1.Hbuilder 打出IOS的越狱包或者有时间限制的包 http://www.dcloud.io/2.用appuploader领取暂时的管理证书和profile描述文件 http://www.appuploader.net/3.爱思助手 https://www.i4.cn/4论坛:http://ask.dcloud.net.cn...

2019-01-02 14:30:30 1960

原创 greys使用总结

安装 curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|sh./greys.sh 24787https://github.com/oldmanpushcart/greys-anatomy使用手册https://github.com/oldmanpushcart/greys-anatomy/wiki/greys-pd...

2018-11-22 22:45:44 1533 1

原创 btrace使用总结(完全突破安全限制,引用第三方包)

由于认识JAVA代码热更新在先,所以Btrace这一神器似乎失去了一些光芒,但他的优势是无任何侵入性,可以做一些代码热更新没法做的事情,做到两者互补。比如1 可以直接运行java文件,少了一步编译,更可以在线上直接修改代码2.可以独立的打印到单独的文件中3.想进第三方jar包里的方法里方法内的数据track,4.输入和返回数据track5.内存不够时的track6.异常未有捕获时的t...

2018-11-22 21:17:05 553

原创 Egret 碰撞检测总结

1 点与对象的碰撞bmp.hitTestPoint(pointX,pointY) ;非精确碰撞bmp.hitTestPoint(pointX,pointY,true) ;精确碰撞 // 很耗性能2 对象与对象碰撞 shp1和 shp2对象与对象碰撞 egret中 是用的 盒子碰撞 intersects//两物品重叠的碰撞判断方式 public static hitTest(obj...

2018-05-28 16:11:39 5148

原创 H5游戏性能优化总结

少使用Alpha混合。显式停止计时器,让它们准备好进行垃圾回收。使用事件侦听器并在不需要时删除这些侦听器。(确认)在不需要触摸交互性时显式禁用触摸交互性。(确认)合理使用dispatchEvents 函数。尽可能重用对象,建立对象池,而不创建对象并对其执行垃圾回收。多次调用类属性时,避免直接使用this.att,建立局部变量赋值。(确认)Event.ENTER_FRAME数量控制。(确认)减少不必...

2018-05-28 14:40:54 3460

原创 微信小游戏使用小结

1.小游戏上传时如果勾选自动压缩的话,实际还同时会混淆。因为用到SpringIOC 功能,不能用反射,所以去掉压缩,自行做压缩(主要是把一些库文件换成min版本,并且在头尾加上;window.egret = egret;var egret = window.egret;),要是微信可以把压缩和混淆分开来就好了。2.竖屏换成横屏,只要在game.json里把"deviceOrientation"...

2018-05-07 02:25:25 4101

原创 如何让Egret发布项目时只压缩不混淆

为了安全性考虑,Egret发布的时候会压缩+混淆代码,这也就导致了在做底层的IOC框架时会遇到困扰,因为依赖注入时需要用到类名和变量名,如何能让egret wing如发布时类名和变量名不混淆变成了需要考虑的重点。通过摸索,发现egret压缩混淆用了第三方插件UglifyJS2所以只要调整下输入参数就可以搞定,在Egret\engine\5.1.9\tools\lib\utils.js里只需要修改一...

2018-04-19 23:23:02 1958

原创 Nginx使用总结

先看下请求的cache-control 是否为Cache-Control:no-cache,如果是,则在nginx配置中加如下参数要使静态文件缓存时间有效add_header    Cache-Control  max-age=518400;//6天内缓存有效允许访问以下地址时白名单过滤        location /charge                { ...

2018-04-11 21:47:10 255

原创 腾讯CDN使用总结

CDN目录刷新后是不是意味着就把新的版本文件全部推送给了各个CDN节点?错,行缓存刷新。URL 预热是以文件为单位进行资源预热。刷新与预热的区别:刷新后,会删除该资源在全网 CDN 节点上的缓存。当用户请求到达节点时,节点会回源站拉取对应资源,返回给用户并缓存到节点,保证用户获取到最新资源。 预热后,该资源会提前缓存到全网 CDN 节点。当用户请求到达节点时,可以直接在节点获取到资...

2018-03-06 20:28:52 4391

原创 微信公众平台网页授权两次重定向跳转问题

在做微信公众平台网页授权时,发现每次请求授权链接https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=xxx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect时都会重定向链接redir...

2018-03-01 19:49:34 37015 18

原创 Egret的TimerEvent.TIMER和Event.ENTER_FRAME的区别

TimerEvent.TIMER,从Timer的参数就可以看出来,是delay多少时间,意思是当一个函数执行完成后再Delay多久。举例: Timer 设置为 间隔40ms,而Timer的函数运行花费25ms,那么,Timer将以65ms的间隔恒定运行。比如间隔多久发射子弹,创建敌机,创建陨石等...Event.ENTER_FRAME是定时间隔多少时间出发。如果执行时间比间隔时间长,则会间隔执行时...

2018-02-20 21:12:06 1584 1

原创 Egret Wing使用总结

1- 第三方框架安装初始化npm init -f,相应的就会生成package.json然后,再安装所需框架 比如:npm install log4js卸载npm uninstall 模块:删除模块,但不删除模块留在package.json中的对应信息npm uninstall 模块 --save删除模块,同时删除模块留在package.json中depen...

2018-02-17 20:57:20 6510

原创 阿里云的数据风控试用总结

使用背景:由于一款游戏经常会被盗号,小号肆虐,会对游戏的正常运营产生很负面的影响,急需找一款风控产品来解决这个问题。那么,这些行为都有哪些特征呢?盗号,基本都是暴力破解,撞库后异地登录;工作室操控海量小号,那么,基本是会用脚本去处理,不会触碰到页面(也就是非真人登录),而且很有可能会共用相同的IP。业务风控业务风控,包含:注册防控、登录防控、活动防控、消息防控和其他风险防控,通过用户行为、软硬件环...

2018-02-13 16:19:32 2111

原创 如何屏蔽防火墙UDP服务支持

为了防止被DDOS攻击,需要屏蔽UDP的访问,但有些端口还是得打开如下:-A INPUT -s 10.0.0.0/8 -p udp --dport 53 -j ACCEPT-A INPUT -p udp --destination-port 123 -j ACCEPT-A INPUT -p udp --source-port 123 -j ACCEPT-A INPUT -p udp --sour

2018-02-05 15:25:22 3012

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