- 博客(66)
- 资源 (13)
- 收藏
- 关注
转载 Apdex 阈值相关问题
Apdex(应用程序性能指数)是一个由 Apdex 联盟开发的用户评估衡量应用性能程序性能的指标。该指标的目的是期望通过一种统一的方法来分析和衡量用户对于当前应用性能的满意程度,是一个基于相应时间,区间为0 - 1之间的指标(0 = 没有用户满意,1 = 所有用户满意),使应用程序的开发运维人员对用户满意度有深入的理解。
2024-05-24 22:43:44 49
原创 为什么DNF手游上线要提前一天开放创角功能?
在游戏正式上线前,通过预创角可以让部分玩家登录游戏,对服务器的承载能力进行测试,确保游戏在正式上线时能承载大量玩家的同时在线。- 提前测试有助于发现和解决服务器可能存在的问题,提高游戏正式上线时的稳定性和玩家的游戏体验。综上所述,预创角活动不仅是一种有效的市场推广手段,同时也能帮助游戏开发商更好地准备游戏的上线,确保玩家在游戏正式上线时能够获得良好的游戏体验。- 通过预创角活动,可以让玩家提前体验游戏的部分内容,如角色创建,进而激发玩家的兴趣,促使他们分享到社交平台,起到免费宣传的作用。
2024-05-20 10:52:48 385
原创 记一次苹果appstore提审拒审问题1.2
也请您提供您觉得有问题的内容,我会根据您提供的内容,来优化我们的审核标准和策略,希望可以尽快获得您的回复。我们希望联系我们的工作人员能够说中文。以上提及的整改,我们会在8月10日的1.9.0版本更新之后,同时提交1.10.0版本,1.10.0的版本中会增加用户可以屏蔽其他用户的贴子及信息的功能,以便用户可以屏蔽其他滥用的用户。因为我们应用中的重大活动即将开启,我们向玩家承诺了会在8月10日会开启活动,因此需要在8月10日完成版本更新,我们请求审核团队通过1.9.0这个版本的审核,以便应用内活动的开展。
2024-05-14 22:47:26 1381
原创 记一次DNS故障导致用户无法充值的问题(下)
另外一边准备新域名进行测试发布,随时更换为新的域名。等了3小时左右,5月8日下午16:00左右,准备进行新的域名更新,忽然接到XX省通管单位的回复,已经将我们的域名解封。上一篇说到DNS故障导致无法充值,后来我们通过拨测发现业务域名的解析目标地址被解析到了【127.0.0.1】IP。1、联系阿里云厂商,通过沟通,阿里云反馈我们的域名被XX省通管单位封禁了,导致解析到了不正确的地址。2、DNS域名需要进行拨测监控,掌握全国到业务域名的畅通,遇到异常及时反应。1、业务域名需要有备用,同时具备随时转正使用能力。
2024-05-10 23:01:09 306
原创 从0到1提审苹果商店(appstore)上线一款新APP
1、和苹果审核团队的沟通实在没有办法时,真的要升级客服,先向客服寻求帮助,争取获得和审核团队的沟通通道,期间我们和苹果的审核团队进行了电话沟通,问清楚了问题。(苹果审核表达通常都是模板式的回答,沟通很重要)2、和苹果审核团队的沟通需要坦诚相待,实事求是的讲清楚每一个细节,越隐瞒越糟糕。3、遇到苹果审核类似的情况,要有强大的愿力和耐心,相信一定可以解决。4、苹果审核团队也有出岔子的时候,确定问题后一定坚定,不要动摇,最后的苹果自己问题而产生的插曲也是惊险万分。
2024-05-07 21:31:42 1024
原创 记一次苹果appstore提审拒审问题3.1.1
线上的一个APP再一次版本提交时,遇到苹果拒审,苹果回复中提到的功能已经跑了一年多有余,项目组忽然收到拒审,很是诧异。第三次提交:未修改版本,仅解释说明,本次提交有修复bug相关修改,希望苹果先行审核通过,下个提交版本进行整改。第二次提交:将应用中设计“购买”“购”“商城”等文字去除和替换为没有歧义的文字。去除苹果所描述的功能,准备提交,未完待续。
2024-05-07 15:33:47 632
原创 记一次DNS故障导致用户无法充值的问题(上)
对比用户活跃地区IP地址查询,出问题的用户归属地都来自湖北省。刚刚过去了五一劳动节,回来后一上班接到客服运营团队反馈的节日期间的问题,反馈有部分用户无法充值。忽然想到10年前在上一家公司时,出现过用户的客户端无法进行更新问题,现象和这个很像。查看阿里云的DNS不同版本的说明,恍然大悟,起码到【个人版】才能保证DNS100%的可用性。让运维团队排查DNS的解析,由于没有使用流量分析服务,发现没有DNS的日志。无法充值操作视频、问题时间、手机机型、手机网络情况。3、不是所有的用户都无法进行充值。
2024-05-07 14:57:51 261
原创 CentOS Linux快速搭建SVN服务器
安装步骤如下:1、yum install subversion2、输入rpm -ql subversion查看安装位置,如下图:可以看到 svn在bin目录下生成了几个二进制文件。再输入/usr/bin/svnversion --version 就可以查看svn的版本,这样就说明svn安装成功,如下图:3、创建svn版本库目录 mkdir -p /var/svn/svnrepos4、创建版本库s...
2018-06-23 17:16:03 251
原创 一款经典的服务器架构设计
本人自15年下半年起从事某知名IP游戏的后端研发工作,于16年中这款架构承载着我们的产品得以上线,截至现在整个后台服务的主要框架如下图所示。我们的产品是横板格斗类动作游戏,目前持续稳定盈利中。写下此文,别无它意,仅作记录耳。 服务器类型主要业务备注SuperServerTCP服务负责所有world服的数据同步 WorldServerTCP服务负责world下全局数据同步,负责跨服匹配业务 Game...
2018-05-06 14:55:25 4899
原创 valgrind callgrind性能分析
1.请自行安装valgrind工具2.使用工具运行你的应用程序 valgrind --tool=callgrind ./sgzj-socialserver3.运行结束后,程序当前目录生成了一个文件callgrind.out.582374.python gprof2dot.py -f callgrind -n20 -s callgrind.out.58237 > valgri
2017-09-21 14:43:23 1308
转载 Linux无密码传输文件
在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件的时候都需要输入密码确认。不过通过建立信任关系,可以实现不输入密码。这里假设A的IP:192.168.10.1B的IP:192.168.10.2需要从A免密码输入复制文件至B。1. 在主机A上执行如下命令来生成配对密钥: ssh-keyge
2016-10-31 09:30:12 521
原创 如何统计一个新玩家在60天内的登录情况----std::bitset
业务需求:需要知道一个新建的账号在60天内登录的情况。机智的程序猿们都会想到用stl的各种关联容器去记录而后分析。经过仔细考量,本猿想到另外一种办法可以简单的实现该需求,并且可以使数据存储尽可能小。废话不多少,上代码:void Player::updateLoginStatistics(){ time_t now = Timestamp::now();
2016-02-16 13:57:12 562
原创 我用ab给web服务器做压力测试
目标服务使用POST接收数据。首先POST参数包括:game,type,platform新建一个文件vi /tmp/post.dat输入:game=1&type=1$platform=xy_ios保存文件.[root@iZ11gwfi6i5Z bin]#./ab -n 10000 -c 1000 -p /tmp/post.dat -T 'application/
2016-02-03 14:05:54 2148
原创 crotab 常用写法摘记
由于项目需要定时对业务数据库进行备份我便写了一个备份脚本,那么谁来定时做呢 根据多年的项目经验,首选 crontab每天的23:10执行以下脚本【1】或者【2】【1】10 23 * * * /opt/www/platform/bin/backup_platformdb.sh【2】10 23 * * * /opt/www/platform/bin/backup_pla
2016-01-30 13:52:06 1000
原创 如何在堆栈被破坏的情况下解决宕机问题
宕机不用怕,原来这样哒!通常在生产环境下如果遇到宕机,我们的做法很简单gdb调试core文件,可以看到程序的堆栈信息,就可以定位问题,解决问题。但是在某些情况下,堆栈信息由于某些原因被损坏了,bt打出来显示的全是??????那么如果想找到问题那就难办了。不过今天我们介绍一种,方法使用GCC内建函数__builtin_return_address(level) le
2016-01-08 13:42:46 2320
原创 依赖于数据库的web网站优化
在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。很明显,当数据库的数据量持续增大,网站或者应用的性能会大幅降低。我们列出三种做法的站1.无任何缓存,直接从数据库查询2.使用文件进行缓存,按照规则去更新文件缓存3.使用re
2016-01-02 13:59:21 452
原创 unity 使用www ios9系统出错
http://southpeak.github.io/blog/2015/09/14/app-transport-security-ats/我们的产品在发布时,发现ios9的手机无法发出http请求到服务器(使用的unity的www方式)最后查出来原因如上链接设置App Transport Security(ATS)后 重新发布 ios版本,问题解决了!!!
2015-12-07 15:42:02 2952 4
原创 如何知道我在一堆数据中排第几std::partition
业务中遇到一个问题,有一堆数据,我需要知道我这个数据在那一堆数据中排第几。一般做法就是先把所有已知数据排序,再遍历找到我,那么就知道我是第几了。这么做好吗?回答是:好。那么请问是最好吗?不是最好。std::sort 复杂度std::partition 复杂度 ,O(n) ,n 为 last - firststd::distance 复杂度想起了一个叫做std::
2015-12-05 11:06:41 796
原创 linux磁盘满了如何清理
首先用root用户,登录 740 cd / 741 ls 742 du -s -s ./* 743 df -h 744 cd /usr/ 745 du -s -s ./* 746 cd /usr/share/ 747 du -s -s ./* 748 cd /usr/share/nginx/ 749 du -s -s
2015-11-19 21:48:09 6878
原创 解析固定格式的文件数据 php脚本
#!/usr/bin/phpfunction printUseage() { die("usage: ./txt2json.php [file_in] [file_out] [id:0,(ALL USER)] [search_type:1(ITEM),2(RES),3(ITEMOVERFLOW)] [res_id:0(ALL id)]\n");}function che
2015-11-18 21:19:28 473
原创 我自己使用过的linux服务器监控工具
1.monitorix这是一款开源免费的轻量级 工具,需要perl的支持。安装centos yum install monitorix安装完毕 service start monitorix在浏览器中输入http://192.168.0.221:8080/monitorix此处的IP地址是被监控机的ip地址2.monit和mmonit
2015-11-09 11:24:41 4263
原创 mysql 数据库实际应用中的大数据处理
某年某月,我们我接到公司的任务,要搭建一个游戏平台系统,管理旗下所有游戏的玩家账户数据。起初拿到任务后,想了想。那么这个系统就是一个注册,一个登陆就ok了。于是有了下面的数据库设计。tbl_account. 表【主键ID,用户名,密码,注册时间,……】业务逻辑开发完成,OK。内网测试没问题,业务流程正常,可以提供服务了。此时数据是A数量级条。过了几天自己在该表插入B数量级条
2015-10-31 11:10:20 2390
转载 mysqldump 的用法
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql) mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2、导出數據库為dbname某张表(test)结构
2015-10-16 10:16:58 309
原创 proto如何做到节省空间。
::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];message Test{optional int32 aa = 1;optional int32 bb = 2;}可以看出上面messgae有两个optional字段当生成对应的代码的时候proto帮我们同时生成了一个 ::google::proto
2015-09-27 10:53:01 815
原创 mmorpg游戏设计之2D游戏地图的九宫格子
做游戏这么久,很少花时间来写一写东西,惭愧之至。今天是星期八,天气不错,所以来写上几笔######################################### ## ## 1 # 2 #3 ## # # ##########################################
2015-09-14 22:08:47 3723
原创 php添加mysql扩展
536 cd addtiontools/ 537 ls 538 cd php-5.3.16 539 ls 540 cd ext/mysql 541 ls 542 /usr/local/php/bin/phpize 543 ./configure --with-php-config=/usr/local/php/bin/php-config
2015-09-12 21:40:24 1300
原创 php添加socket的扩展
767 cd addtiontools/ 768 ls 769 cd php-5.3.16/ext/sockets/ 770 ls 771 /usr/local/php/bin/phpize 772 ./configure --prefix=/usr/local/php --with-php-config=/usr/local/php/bin/php-co
2015-09-12 21:38:56 8049
原创 linux给用户加个操作某个目录的权限
[root@iZ11gwfi6i5Z ~]# chown -R root:wangchong /usr/local/apache2/htdocs/[root@iZ11gwfi6i5Z ~]# chmod -R 775 /usr/local/apache2/htdocs/
2015-09-11 21:21:44 23736
转载 top里的load average怎么理解呢
top - 10:10:40 up 18 days, 14:25, 1 user, load average: 0.00, 0.00, 0.00Tasks: 106 total, 1 running, 105 sleeping, 0 stopped, 0 zombieCpu(s): 3.5%us, 2.9%sy, 0.0%ni, 93.6%id, 0.0%wa,
2015-09-09 10:17:09 1084
转载 【Linux开发】GCC 4.8及以上支持内存非法访问检查
【Linux开发】GCC 4.8及以上支持内存非法访问检查2015-2-27阅读162 评论0gcc4.8及以上版本支持地址越界,野指针检查,只需要在编译时使用-fsanitize=address选项即可,当运行程序时如果访问非本程序申请的地址就会报错。root@localhost:/home/ngos/practice> vi nullpoint.c 1 #
2015-09-07 12:46:29 7068
原创 __attribute__((constructor)) 高版本gcc不执行
__attribute__((constructor)) // 在main函数被调用之前调用__attribute__((destructor)) // 在main函数被调用之后调 static void func() __attribute__ ((constructor));void func(){ do();} 在项目中
2015-08-27 11:16:36 2861
转载 mysql到底用哪一款存储引擎呢
MySQL数据库MyISAM和InnoDB存储引擎的比较MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData
2015-08-25 22:03:07 1944
原创 gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)升级gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
../base/zAStar.h:167: error: declaration of 'const int step'../base/zAStar.h:16: error: shadows template parm 'int step'原代码:virtual bool move(const int direct,const int step = step) = 0;修改后
2015-08-22 10:53:33 5577
原创 /usr/bin/ld: cannot find -lmysqlclient_r
编译你的工程代码之前之前,先处理一下mysql的库,默认查找libmysqlclient_r.so,可是mysql默认为libmysqlclient.so,内容完全一样,做个链接即可请在root下执行# cd /usr/local/mysql/lib/mysql/ (库所在目录)# ln -s libmysqlclient.so.15.0.0 libmysqlcli
2015-08-22 10:38:20 5735
转载 应用 Valgrind 发现 Linux 程序的内存问题
应用 Valgrind 发现 Linux 程序的内存问题如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在。有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题。掌握 valgrind 的使用以及工作原理,能够有效地定位进而避免应用开发中的内存问题。Valgr
2015-08-19 13:55:30 443
转载 map unordered_map hash_map比一比
map hash_map unordered_map 性能测试 2012-01-08 22:27:29分类: C/C++by zieckey测试条件:gcc version 4.2.1 20070719 [FreeBSD]FreeBSD 7.2-RELEASE #0: Fri May 1 07:18:07 UTC 2009
2015-08-17 15:34:40 433
原创 技能编辑器
之前做过一款类炉石的手机游戏由于炉石技能比较复杂对于技能的设计采用"0-1-0-4-0-0-0:2-100-0-0-0-0;."格式进行配置。":"之前的决定目标范围":"之后的决定技能效果此图是编辑器的界面,比较随意,不过可用性还是蛮好的。红圈处都是决定该技能的参数设定选择或填写相应的参数,便可以生成对应的技能效果配置。点击生成就会有 舒服的配置了哦
2015-08-13 21:06:58 1185
原创 protobuf的数据类型和C++数据类型
protobuf支持的数据类型不是很丰富protobuf属于轻量级的,因此不能支持太多的数据类型,下面是protobuf支持的基本类型列表,一般都能满足需求,不过在选择方案之前,还是先看看是否都能支持,以免前功尽弃。同样该表也值得收藏,作为我们在定义类型时做参考。.proto typec++notesdoubled
2015-08-13 16:33:38 11443
转载 为什么求模运算要用素数(质数)—— 哈希表设计
为什么求模运算要用素数(质数)—— 哈希表设计 By admin | 2013 年 7 月 25 日 | 杂记, 编程技术在设计用除法来散射的哈希表时,我们都会用数值模哈希表大小,得到的余数来作为ID存入哈希表对应格子中。所有文章都表明要用一个较大的素数来作为哈希表的大小,也就是要模一个较大的素数。但为什么就是要用素数呢?简单分析一下可以看出玄机。先看看如果用一个
2015-08-12 11:52:20 15816 6
转载 改天记得把自己那个代码中的改成这个boost::lexical_cast
c++数据类型万能转换器boost::lexical_cast .boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:string s = "123"; int a = lexical_castint>(s); 这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直
2015-08-12 10:38:40 417
MyQQ c#winform局域网 聊天
2011-09-26
c# 画统计图表 的自定义控件dll
2011-06-14
c# 经典案例+不错非常不错 值得学习
2011-04-19
c#GDI+案例全解 gdi+开发技术解析 实例
2011-04-14
自定义控件 GDI+ 时钟 clockcontrol.dll
2011-04-11
自定义控件 时钟 控件 windows form c#
2011-04-10
算法课程设计 背包问题 0/1背包问题 实现
2010-12-25
银行家算法 课程设计 操作系统 c c++
2010-12-24
Effective C++.2nd Edition.Lostmouse.[zh-tw].chm
2010-11-20
sqlserver问题解决方案
2010-11-20
[C程序设计语言].The.C.Programming.Language.chm
2010-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人