自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (17)
  • 收藏
  • 关注

原创 linux下查看进程虚拟地址空间布局

关于在linux下,如何查看进程虚拟地址空间的内存布局。

2023-01-09 11:43:46 478

原创 关于单件模式

一个类只有一个实例,并为之提供一个全局的访问点。如果对内存要求没那么高,可以在多线程未创建时,用懒汉模式在主线程初始化单件实例,以避免使用线程锁。

2022-12-31 20:16:10 352

原创 MSS和MTU的区别

MSS(最大报文长度),是传输层TCP协议报文的选项之一,它表示报文段发送方可以处理的最大报文段(不包括TCP头部和IP头部)。MTU(最大传输单元),是用来限制数据链路上能传数据包的大小,并无协议指定,它包括数据包+TCP头部+IP头部。

2022-12-22 09:58:33 426

原创 关于右值引用

什么是右值引用右值引用是在c++11标准中提出的,在此之前我们讲的引用都是左值引用。要想搞明白左值引用和右值引用,首先要区分左值和右值。在c++11中,右值又分为纯右值和将亡值,纯右值指的是临时变量和不跟对象关联的字面量值,将亡值指的是和右值引用相关的表达式,这样的表达式通常表示将要被移动的对象。简单一点讲:可以用&去地址的表达式或变量是左值,不能用&取地址的变量或表达式是右值。

2022-11-30 15:07:16 389

原创 innodb与myisam的区别

innodb和myisam是mysql比较常用的存储引擎。在mysql5.5之前,默认引擎是myisam,之后默认引擎是innodb。

2022-11-30 10:24:00 1147

原创 关于智能指针

auto_ptr是c++98库中提供的智能指针,该指针对于上面的问题,采取的解决方案是:将原指针拷贝或赋值给新指针时,将原指针设置为nullptr,此时就只有新指针指向目标对象。智能指针的本质是一个类模板,它可以创建任何类型的指针对象,当该指针对象的生命周期结束时,会自动调用析构函数释放其对应的资源。

2022-09-23 15:44:36 707

原创 macOS安装brew

国内用户直接执行命令:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"如果过程中下载速度太慢,可以尝试换个源。

2022-05-27 18:15:34 72

原创 通过设置资源的轴心点来改变渲染先后顺序

Unity中,Spriter Renderer默认将Spriter的中心点作为渲染先后的参照坐标。有时我们需要改变渲染的参照点位置,让画面显得更真实。首先将场景对象Sprite Renderer插件中的Sprite Sort Point参数设置为Pivot。然后在资源文件中将Pivot参数改为想要的点位。...

2022-05-09 12:08:43 396

原创 关于mac下vscode无法自动补全unity代码的问题

环境:系统:macOS BigSur版本:11.2.3芯片:apple M1untiy版本: 2021.3.1vscode版本:1.66.2vscode插件:C#、C# Extensions、Debug for Unity、Unity Code Snippets、Unity Tools问题:在macos系统下,vscode编辑unity代码时,无法自动补全。解决过程:网上很多这种情况,提供的解决方案基本这几个:检查unity项目设置里面framework的版本

2022-05-03 15:03:38 4939 4

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

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

2018-12-04 21:50:47 392

原创 Linux命令——free

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

2018-02-09 16:27:42 915

原创 内存检测工具——addressSanitizer

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

2018-01-18 17:22:52 4497

原创 lambda(c++11)

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

2017-12-07 20:42:03 227

原创 关于互斥锁

顾名思义,在多线程下,用来锁定资源使用权限。我们先看一段代码:#include#include#include#includeint count =0;void *func(void* argc){ for(int i=0; i<3; i++) { printf("[before] tid:%d count:%d\n", pthread_self(), co

2017-12-02 15:01:00 261

原创 关于git的撤销

一般有以下几种情况需要撤销操作:1.修改完本地文件状态:所在位置:本地工作区撤销指令:git checkout filename2.git add状态:所在位置:本地stage区撤销指令:git reset HEAD filename3.git commit状态:所在位置:本地版本库撤销指令:git reset commitId (回退到对应版本,撤销之前版本记

2017-11-24 19:04:42 201

原创 自我反省(一)

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

2017-10-19 15:16:17 281

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

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

2017-09-20 19:02:51 170

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

最近无意中看到一段代码,感觉很有趣,和大家分享一下。#include class A(){};void f(){ char buf[sizeof(A)]; new (buf)A();}int main(){ f(); return 1;}代码可以看出,f()中在栈上申请了一块sizeof(A)大小的内存,new (buf)A(); 这句代码其实是重载ope

2017-08-24 20:31:52 262

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

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

2017-08-24 14:23:00 764

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

1> static_caststatic_cast(expression)运行时没有检查安全类型。父类与子类之间转换,上行安全,下行不安全。其他类型转换为void类型。void类型转换为其他类型(不安全)。int与enum之间转换。2> dynamic_cast主要用于类层次之间的类型转换,上行与static_cast一致,下行有类型安全检测,比static

2017-08-15 12:29:06 234

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

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

2017-08-15 12:19:18 227

原创 操作系统(一)

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

2017-05-23 12:14:23 214

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

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

2017-05-11 09:59:53 172

原创 关于浅拷贝与深拷贝

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

2017-02-15 10:49:01 189

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

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

2016-12-27 20:00:05 915

原创 vs2010添加lib库的方法

1.直接在工程文件中添加lib文件。右键工程文件 -> 添加现有项 -> 选中指定lib文件。2.直接在工程中引用程序集。右键工程文件 -> 引用 -> 添加新引用 -> 选中项目。ps:适用于本地项目的lib文件。3.通过链接器输入lib文件。右键工程文件 -> 属性 -> 链接器 -> 输入 -> 指定的lib文件名。ps:需要在C++附加包含目录中输入.h文件的路

2016-12-22 11:10:33 1853

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

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

2016-12-12 14:48:00 4081 2

原创 TCP粘包

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

2016-12-02 11:18:05 296

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

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

2016-11-20 15:21:45 259

原创 Converter

泛型委托,由Array类的ConvertAll方法和List类的ConvertAll方法使用,将集合中每个元素从一种类型转换为另一种类型。例子:将由字符分隔的字串转为对应类型的liststatic List ToList(this string str, char spilt, Converter handler){if("" == str){return new Li

2016-11-17 10:56:35 286

原创 压缩字符串

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

2016-11-15 10:36:53 236

原创 获取模块句柄/基址

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

2016-11-12 17:12:16 9197

原创 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==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只

2016-10-14 13:58:35 251

Go语言实战

Go语言结合了底层系统语言的能力以及现代语言的高级特性,旨在降低构建简单、可靠、高效软件的门槛。本书向读者提供一个专注、全面且符合语言习惯的视角。Go语言实战同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试,以及其他一些主题。

2017-10-09

GO语言程序设计(中文版)

国外最经典的Go语言著作,Go语言编程的先驱者Mark Summerfield的实践经验总结。这是一本Go语言实战指南,帮你了解Go语言,按Go语言的方式思考,以及使用Go语言来编写高性能软件。作者展示了如何编写充分利用Go语言突破性的特性和惯用法的代码,以及Go语言在其他语言之上所做的改进,并着重强调了Go语言的关键创新。

2017-10-09

Unity3D游戏引擎 脚本入门

Unity 3D游戏引擎脚本入门,可以看教程结合图解一步一步来建构自己的游戏,能够让新手尽快入门,即使没有编程基础也可以轻松开发游戏,值得好好学习一下。

2017-09-26

unix环境高级编程第2版

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。

2017-09-10

unity5圣典中文API手册v0.02.chm

Unity5中文API手册 最新版:v0.02 这个版本只包括运行时类,后续会尽力把其他类加进来。 本手册适合新手使用。

2017-09-10

unity中文教程

对于刚开始学习U3D的同学来说,入门是比较困难的。本书比较基础,适合没有任何基础的新手。希望各位同学能够早日成为Unity大师。

2017-09-09

Linux就该这么学

这是一本很不错的基础书,讲解内容循序渐进,很适合linux新手入门学习,尤其是做运行维护的小伙伴,强烈推荐!!

2017-09-07

炉石传说源码

文件包含魔兽英雄传炉石传说,移动平台客户端与服务端源代码。本人也是费了好大力气从朋友那里搞来的,第一时间分享给大家,希望大家喜欢。以前资源分可以写0的,不知道为啥今天写不了了,只能写最低的1分了。

2017-09-06

xv6系统下载

Xv6很简单,全部代码只有8千行多,很多大学都在操作系统课程中使用了Xv6或其变种,如耶鲁,清华等。

2017-05-11

nasm安装包

一款非常强大的汇编编译程序

2017-05-10

Orange'S:一个操作系统的实现

这是一本让人读着很过瘾,却也特别累的一本书。

2017-05-09

30天自制操作系统

一本日本人写的书,一步一步带你写出一个操作系统内核。有耐心的话,每天2-3h,两三个月就可以完成。

2017-05-09

GDI+ SDK 参考.chm

Microsoft Windows GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API)。它使得程序可以同时在视频显示器和打印机上使用图形和格式化文本。基于Microsoft Win32的应用程序不能直接访问图形硬件,而是通过GDI+来协调设备驱动和程序动作的交互。

2017-05-05

《深入理解计算机系统》第四章小实验Y86体系的实现

在ISA.TXT中有指令对应的机器码。 在test.S中有一个用这个指令集合写的求和程序。 在ASM.TXT中有该迷你计算机Y86所支持的汇编指令。

2017-05-05

linux内核完全剖析--基于0.12

本书适合Linux爱好者作为学习内核工作原理的自学参考书籍,也适合作为高校计算机专业学生学习操作系统课程的辅助和实践教材,还可供一般技术人员作为开发嵌入式系统的参考书使用。

2017-04-26

UNIX源代码分析

本书适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。

2017-04-26

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

TA关注的人

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