自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 webrtc 生成unpack_aecdump工具

如果省略该标志,则默认情况下会打开组件构建(正如您在运行 gn gen out/Release 后从 gn args out/Release --list 中看到的那样,没有参数)。在这种情况下,库与主二进制文件是分离的,如果您想与其他人共享二进制文件,则需要复制多个文件(不仅仅是“unpack_aecdump”,还有“libprotobuf_lite.so”)。terminal执行:gn gen out/Release --args='is_component_build=false'

2023-11-16 10:44:37 302

翻译 FFT

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。现在就根据...

2019-07-12 17:03:18 240

翻译 如何从ACM的论文模板中删除ACM Reference Format信息

我们发现ACM的latex模板中会有ACM Reference Format信息,怎么也去不掉,百度了好久才发现可以这样去掉-----发现在\documentclass[sigconf]{acmart}下面直接添加这几行即可去掉\settopmatter{printacmref=false} % Removes citation information below abstract...

2019-04-08 12:41:44 5286 2

转载 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

C++游戏服务器开发常用工具介绍在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用。庄子有云,“吾生也有涯,而知也无涯,以有涯随无涯,殆已”。代入到项目开发中就是说,如果对知识点无差别的全面攻击,不仅会导致所学甚泛却无一深入的尴尬,也会占用太多的有效时间从而影响项目进度。作为一个C++游戏服务器开发者来说,我们时刻...

2019-03-01 10:00:44 833

转载 信源编码和信道编码

一.信源编码和信道编码的发展历程信源编码:    最原始的信院编码就是莫尔斯电码,另外还有ASCII码和电报码都是信源编码。但现代通信应用中常见的信源编码方式有:Huffman编码、算术编码、L-Z编码,这三种都是无损编码,另外还有一些有损的编码方式。信源编码的目标就是使信源减少冗余,更加有效、经济地传输,最常见的应用形式就是压缩。相对地,信道编码是为了对抗信道中的噪音和衰减,通过增加...

2018-12-06 15:14:59 7544

转载 梯度下降法

梯度下降的场景假设 梯度 梯度下降算法的数学解释 梯度下降算法的实例 梯度下降算法的实现 Further reading转载:https://www.jianshu.com/p/c7e642877b0e本文将从一个下山的场景开始,先提出梯度下降算法的基本思想,进而从数学上解释梯度下降算法的原理,最后实现一个简单的梯度下降算法的实例!梯度下降的场景假设梯度下降法的基本...

2018-10-05 10:50:26 241

转载 new与malloc

new和malloc的区别:0. 属性 new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1. 参数 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。2. 返回类型 new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故...

2018-09-26 22:45:25 121

翻译 C++虚函数指针虚函数表

C++的多态可以分为静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,而通过虚函数可以实现动态多态。实现函数的动态联编其本质核心则是虚表指针与虚函数表。1. 虚函数与纯虚函数区别1)虚函数在子类里面也可以不重载的;但纯虚必须在子类去实现2)带纯虚函数的类叫虚基类也叫抽象类,这种基类不能直接生成对象,只能被继承,重写虚函数后才能使用,运行时动态动态绑定!2.子类继承父类...

2018-09-24 23:42:14 762 1

翻译 #define和const

转载:https://www.cnblogs.com/scut-linmaojiang/p/4722338.html类型和安全检查不同宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查编译器处理不同宏定义是一个“编译时”概念,在预处理阶段展开,不能对宏定义进行调试,生命周期...

2018-09-24 09:32:55 275

翻译 static与extern

一.C语言中的static关键字    在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。    (1)修饰局部变量    一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意...

2018-09-24 09:30:17 150

原创 STL底层数据结构实现

STL数据结构:1.vector      底层数据结构为数组 ,支持快速随机访问2.list            底层数据结构为双向链表,支持快速增删3.deque       底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问deque是一个双端队列(double-ended queue),也是在堆中保存...

2018-09-24 09:18:07 2123

转载 进程与线程、并发与并行、同步与异步的区别

一、线程与进程的区别进程:指内存中所运行的程序线程:进程中的一个执行流区别:1、一个程序至少有一个进程(当然也可以启动多个进程),而一个进程至少有一个线程(当然也可以多个线程同时运行,如果支持的话)2、另外,内存中的每一个进程都是有独立内存单元的(进程是可以申请系统资源的),而其中的多个线程是可以共享内存的(共享其所在进程的资源),可以提高程序运行效率3、进程是一个“执行中...

2018-09-17 23:14:57 473

转载 C++11常用新特性快速一览

转发:https://blog.csdn.net/jiange_zh/article/details/79356417最近工作中,遇到一些问题,使用C++11实现起来会更加方便,而线上的生产环境还不支持C++11,于是决定新年开工后,在组内把C++11推广开来,整理以下文档,方便自己查阅,也方便同事快速上手。(对于异步编程十分实用的Future/Promise以及智能指针等,将不做整理介绍,组...

2018-09-16 14:55:47 162

转载 几个常用的操作系统进程调度算法

一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的...

2018-09-14 09:27:33 22073

转载 SMTP协议介绍

转载:https://blog.csdn.net/qq_35644234/article/details/689616031、SMTP介绍基本概念SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一...

2018-09-14 09:25:28 11721 1

转载 进程上下文VS中断上下文

转载:https://www.cnblogs.com/zqz365001/p/4544741.html1.内和空间和用户空间内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别...

2018-09-14 09:18:23 126

转载 进程同步及线程同步的几种机制

进程中线程同步的四种常用方式:1. 互斥量: 采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。2. 信号量: 它允许同一时刻多个线程来访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。3. 事件(信号):通过通知操作的方式来保持多线程同步,还可以方便实现多线程优先级的比较作。4.临界区:临界...

2018-09-14 09:09:35 14951

转载 linux系统编程之进程(八):守护进程详解及创建,daemon()使用

转载:https://www.cnblogs.com/mickole/p/3188321.html一,守护进程概述Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进...

2018-09-14 09:07:53 190

原创 进程饥饿和死锁及饿死

饥饿是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。 死锁是指在多道程序系统中,一组进程中的每一个进程都无限期等待被该组进程中的另一个进程所占有且永远不会释放的资源。 相同点:二者都是由于竞争资源而引起的。 不同...

2018-09-14 09:01:40 9181

转载 文件传输协议FTP

  文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。  文件传输协议有基于TCP的FTP和基于UDP的简单文件传输协议TFTP,它们都是文件共享协议中的一大类,即复制整个文件,其特点是...

2018-09-13 16:10:23 4276

转载 输入一个网址到获取页面的过程

从输入网址到获得页面的过程1. 查询DNS,获取域名对应的IP地址浏览器搜索自身的DNS缓存,如果找到则返回IP;否则,浏览器就向本地域名服务器请求查询IP,如果存在,则返回IP;否则,本地域名服务器发起一个迭代DNS请求,查询到IP后返回给本地主机;2. 浏览器获得域名对应的IP地址后,发起HTTP三次握手;3. TCP/IP连接建立起来后,浏览器就可以向服务器发送htt...

2018-09-13 16:08:38 3358

转载 计算机网络之远程终端协议TELNET

TELNET 是一个简单的远程终端协议。用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。TELNET 也使用客户服务器方式。在本地系统运行 TELNE...

2018-09-13 15:59:57 1512

转载 socket编程之实现一个简单的TCP通信

转载:https://blog.csdn.net/qq_33951180/article/details/68066634一、理解socket1、socket即为套接字,在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一的标识网络通讯中的一个进程,“IP地址+TCP或UDP端口号”就为socket。2、在TCP协议中,建立连接的两个进程(客户端和服务器)各自有一个socket来...

2018-09-13 15:58:46 1025

转载 基于UDP(面向无连接)的socket编程

转载:https://blog.csdn.net/c_base_jin/article/details/69681066本程序是基于windows socket的套接字库实现网络编程;当WSAStartup函数调用成功后,在程序的最后都需要相应的调用WSACleanup函数以便释放为该应用程序分配的资源,终止对WinSock动态库的使用。基于UDP的服务器端流程创建套接字(sock...

2018-09-13 15:54:12 925

转载 HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

转载:(https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A)一、HTTP的历史早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了 WEB2.0 以来,我...

2018-09-13 15:10:46 205

原创 四种mysql存储引擎

转载:https://www.cnblogs.com/wcwen1990/p/6655416.html前言数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存...

2018-09-13 13:28:32 118

原创 B树与B+树

转载:https://blog.csdn.net/guoziqing506/article/details/64122287B树是为实现高效的磁盘存取而设计的多叉平衡搜索树。这个概念在文件系统,数据库系统中非常重要。当然,有关于B树的产生,发展,结构等等方面的介绍已经非常详细,所以本文只是介绍有关于B树和B+树最核心的知识点,也算是我本人的学习笔记。至于详细的资料,因为毕竟有着太多,所以不再赘...

2018-09-13 10:31:30 144

转载 bullets mysql数据库面试总结

转载自:https://www.cnblogs.com/wmbg/p/6800354.html数据库优化建表优化1)数据库范式l 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。如电话列可进行拆分---家庭电话、公司电话l 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主...

2018-09-13 09:29:46 181

翻译 为什么构造函数不可以声明为虚函数,而析构函数最好声明为虚函数

为什么构造函数不可以被声明为虚函数:1、因为创建一个对象时要确定对象的类型,而虚函数是在运行时确定其类型的,而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型。2、虚函数对应一个虚表,可是这个虚表其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过虚表来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找虚表呢?所以构造函数不能是虚函数。为什么析构函数最...

2018-09-03 09:31:24 467

翻译 C/C++——程序实现过程之编译、链接和执行

从写一个简单的“hello world!”到完成一个大型程序,当程序从编辑完成到执行成功都会经过5个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)和执行(Executing)。了解这五个过程中所做的工作,对我们理解头文件、库文件等在程序中的作用是有帮助的,而且如果能够清楚的了解编译链接过程,在编程时定位错误,纠正错误,...

2018-09-03 08:36:39 1749

转载 C++多线程编程(入门实例)

https://www.cnblogs.com/codingmengmeng/p/5913068.html多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。  其实C++语言本身并没有提供多线程机制(当然目前C++ 11新特性中,已经可以使用std::thread来创建线程了,因为还没有系统地了解过,所...

2018-07-18 14:56:29 162

翻译 计算机网络总结

第一章:网络系统统结构与设计的基本原则  计算机网络按地理范围划分为局域网,城域网,广域网;  局域网提供高数据传输速率 10mbps-10gbps,低误码率的高质量传输环境  局域网按介质访问控制方法角度分为共享介质式局域网和交换式局域网[SD1]   局域网按传输介质类型角度分为有线介质局域网和无线介质  局域网早期的计算机网络主要是广域网,分为主计算机与终端(负责数据处理...

2018-07-17 10:18:41 1571

原创 STL

STLSTL(Standard Template Library,标准模板库),它是由惠普实验室开发的一系列标准化的组件,目前是C++的一部分。‚STL的代码从广义上讲分为三类:container(容器)、iterator(迭代器)和algorithm(算法),容器和算法通过迭代器可以进行无缝地连接。ƒstring,wstring也是STL的一部分使用STL的好处STL是C++的一部分,因此不用额...

2018-07-14 11:16:04 4134 2

翻译 C/C++中修饰符const、extern、static的用法

本文介绍C/C++中局部变量、全局变量、作用域(包括函数作用域、文件作用域、块作用域、函数原型作用域)、生存期以及针对变量和数组定义、函数声明的const、static和extern关键字的用法和作用。1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern...

2018-07-13 09:48:59 280

翻译 关于头文件定义全局变量等问题

全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?可以,在不同的C文件中以static形式来声明同名全局变量。头文件中不可以直接定义变量和函数,但是可以定义static变量 ,类。extern 用法,全局变量与头文件(重复定义)用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include...

2018-07-13 09:32:20 926

原创 C++多线程编程

随着计算机CPU计算能力快速提高,计算机的处理性能和并行性能力也大大提升。那么,一味使用运行时标准库的C++语言也应该开始支持多线程技术。今天,我为大家带来了C++在windows平台下的常用多线程方法。首先我先说一下线程的状态。线程有挂起状态、执行状态、阻塞状态和等待状态,下面分别介绍:挂起状态是说线程创建后并没有直接执行或是调用函数挂起了线程。被挂起了的线程没有执行的能力,只有调用启动函数了之...

2018-07-11 19:39:23 163

翻译 C++编辑编译链接运行

从写一个简单的“hello world!”到完成一个大型程序,当程序从编辑完成到执行成功都会经过5个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)和执行(Executing)。了解这五个过程中所做的工作,对我们理解头文件、库文件等在程序中的作用是有帮助的,而且如果能够清楚的了解编译链接过程,在编程时定位错误,纠正错误,...

2018-04-17 09:20:22 5973

原创 剑指offer题目总结

2018-04-16 17:36:26 297

翻译 面经

2018-04-16 16:15:50 123

翻译 sizeof(类)

基本概念1.类的大小为类的非静态成员数据的类型大小之和,也就是说静态成员数据不作考虑。2.普通成员函数与sizeof无关。3.虚函数由于要维护在虚函数表,所以要占据一个指针大小,也就是4字节。4.类的总大小也遵守类似class字节对齐的,调整规则。一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小.首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用s...

2018-04-14 10:18:33 958

深入_Linux_内核架构

深入_Linux_内核架构

2018-09-06

空空如也

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

TA关注的人

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