自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 关于数据库性能消耗过高的问题

场景:ro东南亚服 人数:50w同时在线 问题:交易所服mysql占用cpu稳定60%,高峰阶段100%。 影响:玩家操作交易所经常出现延时。 原因:玩家上线时会查询一张表,搜索的字段未添加索引。 解决方案:给对应表的搜索字段添加索引。 结果:稳定状况下cpu使用率下降至6%。...

2018-12-04 21:50:47

阅读数 140

评论数 0

原创 Linux命令——free

控制台输入free -m命令:              total        used        free      shared  buff/cache   availableMem:          64267       33905       22704         286...

2018-02-09 16:27:42

阅读数 395

评论数 0

原创 内存检测工具——addressSanitizer

Sanitizer系列是LLVM下的用来检测内存的工具,gcc4.8以上兼容。个人测试在某些方面兼容的不是很好,所以建议还是用clang。通过-fsanitize=address 来启动,也可设置为memory、leak,后面两个笔者未尝试过。asan可以检测很多内存使用上的bug,比如:内存越界...

2018-01-18 17:22:52

阅读数 2781

评论数 0

原创 lambda(c++11)

lambda表达式是c++11的新特性,可以使编程更简洁、更灵活。 我们先来看一段代码: vector vec; class A { public: bool operator () (int i) const { return i >=100;} }; int main...

2017-12-07 20:42:03

阅读数 85

评论数 0

原创 关于互斥锁

顾名思义,在多线程下,用来锁定资源使用权限。 我们先看一段代码: #include #include #include #include int count =0; void *func(void* argc) { for(int i=0; i<3; i++) { p...

2017-12-02 15:01:00

阅读数 125

评论数 0

原创 关于git的撤销

一般有以下几种情况需要撤销操作: 1.修改完本地文件状态: 所在位置:本地工作区 撤销指令:git checkout filename 2.git add状态: 所在位置:本地stage区 撤销指令:git reset HEAD filename 3.git commit状态: 所...

2017-11-24 19:04:42

阅读数 87

评论数 0

原创 自我反省(一)

近来状态不佳,工作虽然不忙,但并没有好好利用这段时间学点东西,却又为了虚度光阴而唏嘘不已。 总结一下原因:主要是想法多且乱,啥都想学,啥都没学好,遇到困难就暂时搁置,真心有点三天打鱼两天晒网的感觉。 很多时候努力只是努力的样子,每天早出晚归、勤勤恳恳、任劳任怨,但这些并不能证明你真的是在努力。...

2017-10-19 15:16:17

阅读数 140

评论数 0

原创 关于浅拷贝合深拷贝(二)

之前写过一次关于浅拷贝和省拷贝的帖子,当时是在用C#过程中遇到问题,然后简单总结了一下。 这次是在写C++过程中遇到的问题,先上代码: #include #include #include using namespace std; class A { public: A(...

2017-09-20 19:02:51

阅读数 80

评论数 0

原创 关于C++中的placement new操作符

最近无意中看到一段代码,感觉很有趣,和大家分享一下。 #include class A(){}; void f() { char buf[sizeof(A)]; new (buf)A(); } int main() { f(); return 1; }代码可以看出,f()...

2017-08-24 20:31:52

阅读数 117

评论数 0

原创 #define中#和##的作用

#define中#表示将传入参数字符串化,##表示将两个字符串连在一起。 例如: #define PASTER( n ) printf( "token"#n" = %d\n ", token##n ) 所以PASTER(11);相当于 printf(&qu...

2017-08-24 14:23:00

阅读数 227

评论数 0

原创 关于C++中的类型转换(显式转换)

1> static_cast static_cast(expression) 运行时没有检查安全类型。 父类与子类之间转换,上行安全,下行不安全。 其他类型转换为void类型。 void类型转换为其他类型(不安全)。 int与enum之间转换。 2> dynami...

2017-08-15 12:29:06

阅读数 134

评论数 0

原创 关于C++中的类型转换(隐式转换)

1> 算术转换 例:int I = 3; double d = 2.232; double x = I+d; 2> 一种类型的表达式赋值给另一类型对象 例:int* p = 0; I = d; 3> 一种类型的实参传递给不同类型形参的函数 例:extern double...

2017-08-15 12:19:18

阅读数 117

评论数 0

原创 操作系统(一)

前段时间在找开发资料,囫囵吞枣的看了下,觉得还是维基的OSDev更专业一些,不过都是英文的,进展很慢。 最近事比较多,个人状态也不是很好,项目计划搁浅了几天。 希望可以早点恢复斗志,坚持下去。 立足之地深挖下去,必有清泉涌出!                            ...

2017-05-23 12:14:23

阅读数 120

评论数 0

原创 自制操作系统(序幕)

打算在两个月内写一个自制的操作系统,之前已经陆陆续续翻看了一些相关的书,不过现在还是一头雾水,不知该从何入手。 万事开头难,后面会把开发过程中遇到的问题以及心得一一记录在博客里,每周至少更新一次。 ok !lets go!!!

2017-05-11 09:59:53

阅读数 118

评论数 0

原创 关于浅拷贝与深拷贝

1.如果目标对象为值类型,浅拷贝与深拷贝没有区别。 2.如果目标对象为引用类型,浅拷贝只会拷贝目标对象的引用,即两边引用的是同一个对象,修改一边是会影响另一边的值;而深拷贝会构造一个新的对象,产生两个对象,修改 一个对象不会影响另一个对象。

2017-02-15 10:49:01

阅读数 122

评论数 0

原创 多字节字符串转宽字节字符串(windows)

windows函数 MultiByteToWideChar提供将多字节字符串转换为宽字节字符串的功能(参考windows核心编程2.8)。 int MultiByteToWideChar( UINT uCodePage, DWORD dwFlags, PCSTR pMultiByt...

2016-12-27 20:00:05

阅读数 462

评论数 0

原创 vs2010添加lib库的方法

1.直接在工程文件中添加lib文件。 右键工程文件 -> 添加现有项 -> 选中指定lib文件。 2.直接在工程中引用程序集。 右键工程文件 -> 引用 -> 添加新引用 -> 选中项目。 ps:适用于本地项目的lib文件。 3.通过链接器输入lib文件。 右键工程文...

2016-12-22 11:10:33

阅读数 436

评论数 0

原创 关于jira安装过程中Sen和ServerID申请的问题

在jira的破解过程中遇到一个关于申请Sen和Server ID问题,花了我好长时间。 在网上没有找到详细介绍这个过程的帖子,这里标记一下,可以给大家做的参考,也备以后再次用到。 首先要到www.atlassian.com注册一个账号,这里有两点问题:一个是注册使用的邮箱126和163的都不能...

2016-12-12 14:48:00

阅读数 2808

评论数 2

原创 TCP粘包

前几天写了一个网络通讯接口,用的是.net的Socket库。 昨天调试的时候出了个问题,发送端发送若干个数据包,接收端接收的时候发现少了一个。 用wireshark截包发现发送端把其中的两个包合并成了一个发送。 网上查了资料,这是由于tcp优化算法引起的粘包机制。 接收端用的是BeginR...

2016-12-02 11:18:05

阅读数 152

评论数 0

原创 关于动态申请二位数组的问题

#include int n = 10; int **a; // 定义一个二维指针 a = (int**)malloc(sizeof(int*)*n); // 申请一个大小为n个整形指针数组的内存空间,并赋给a for(int i = 0; i {     a[i] = (int*)mal...

2016-11-20 15:21:45

阅读数 175

评论数 0

原创 Converter

泛型委托,由Array类的ConvertAll方法和List类的ConvertAll方法使用,将集合中每个元素从一种类型转换为另一种类型。 例子:将由字符分隔的字串转为对应类型的list static List ToList(this string str, char spilt, Con...

2016-11-17 10:56:35

阅读数 147

评论数 0

原创 压缩字符串

命名空间: using System.IO; using System.IO.Compression; // 压缩         public static byte[] Compress(byte[] data)         {             try    ...

2016-11-15 10:36:53

阅读数 151

评论数 0

原创 获取模块句柄/基址

#include HMODULE h = GetModuleHandle(NULL);// 传入对应模块名,NULL表示取当前模块 PS:可在属性->链接->高级->基址:修改基址

2016-11-12 17:12:16

阅读数 3977

评论数 0

原创 wireshark简单过滤规则

1 过滤源ip、目的ip。在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1; 2 端口过滤。如过滤80端口,在Filter中输入,tcp.port=...

2016-10-14 13:58:35

阅读数 146

评论数 0

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