自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 收藏
  • 关注

转载 EGL 介绍和使用

原文链接:https://blog.csdn.net/afei__/article/details/84867104一、简介EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,且它最好...

2019-10-16 11:17:56 412

转载 Linux下查看根目录各文件内存占用情况

原文链接:https://blog.csdn.net/qq_40143313/article/details/81282268一、服务器运行一点时间后各种的项目文件,日志文件,数据库备份登,会越来越多,在linux下可以使用 du 和 df 命令查看。1、df -h 命令查看整体磁盘使用情况2、使用 du -ah --max-depth=1 /可以查看根目录下各个文件占用情...

2019-05-14 17:05:46 3078

转载 c结构体、c++结构体和c++类的区别以及错误纠正

原文地址:https://blog.csdn.net/mercy_ps/article/details/82918677C和C++结构体的区别C语言中的结构体不能为空。C语言中的结构体只是一个复杂的数据类型,只能定义成员变量,不能定义成员函数,但是可以定义函数指针;C++可以定义成员函数和成员变量。C++的结构体和类体现了数据结构和算法的结合。C语言中定义结构体变量时,struct不...

2019-03-26 20:30:58 484

转载 Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题

原文链接:https://blog.csdn.net/u013928720/article/details/53887744最近在centos机器上安装perf对代码做性能测试。百度了一通,使用yum install perf* 这个命令就可以了,结果能正常运行、得到性能测试的报告,但是看不到代码里面的函数名,这怎么分析啊?  于是走上了一条百度路,一路排除命令没有问题,编译的时候加了-g...

2019-01-28 10:14:33 2468

转载 绑定CPU逻辑核心的利器——taskset

原文链接:https://blog.csdn.net/breaksoftware/article/details/79160916 在工作中,我们可能遇到这样的需求:如何评估程序在一核和多核下的工作效率差距?最简单的想法是找一台只有一个CPU逻辑核的机器和一台有多个逻辑核的机器。(转载请指明出于breaksoftware的csdn博客)但是这种方式有明显的问题:不容易找到这样的机器。找到...

2019-01-26 15:50:31 523

转载 CMake 入门实战

原文链接:CMake入门实战什么是 CMake All problems in computer science can be solved by another level of indirection.David Wheeler 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的MS nmake,BSD Make(pmake)...

2019-01-26 15:48:24 351

转载 进程和线程的概念、区别和联系

原文链接:http://www.cnblogs.com/reality-soul/p/6397021.html进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。进程与线程的一个简单解释在这个简单易懂的类比下,了解一下进程和线程的宏观概念:进程,是并发执行的程序在执...

2018-12-12 21:23:14 1583

转载 C结构体、C++结构体、C++类的区别

原文链接:https://www.cnblogs.com/cthon/p/9170596.html先来说说C和C++中结构体的不同a) C语言中的结构体不能为空,否则会报错1>d:\myproject\visual studio 2013\projects\myc++\main.c(71): error C2016: C 要求一个结构或联合至少有一个成员b) C语言中的结构体...

2018-12-12 19:53:37 261

转载 TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手

原文链接:https://www.cnblogs.com/zhuzhenwei918/p/7465467.html这是一个很有意思的问题~    首先,我们要知道TCP是全双工的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息。而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不能给A发,即不同时,为半双工。 单工为只能A给B发,B不能给A发; 或者...

2018-11-05 21:32:38 437

转载 分析C语言的声明

原文1链接:https://blog.csdn.net/paxhujing/article/details/77124453原文2链接:https://www.cnblogs.com/monster-prince/p/6215769.html文章1让我们先来看一些C语言的术语以及一些能组合成一个声明的单独语法成分。其中一个非常重要的成分就是声明器(declarator)——它是所有声明...

2018-09-29 11:14:54 809

转载 Git的Patch功能

原文链接:https://www.cnblogs.com/y041039/articles/2411600.htmlUNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patc...

2018-09-10 09:53:21 429

转载 C语言字符、字符串操作偏僻函数总结

原文链接:http://www.runoob.com/cprogramming/c-function-strchr.html C 标准库 - <string.h>简介string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。库变量下面是头文件 string.h 中定义的变量类型:序号 变量 & 描述 1 size_...

2018-08-21 20:13:30 265

转载 linux中fork()函数详解

原文链接:https://blog.csdn.net/jason314/article/details/5640969 一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数...

2018-08-17 16:05:08 174

转载 Git安装配置

原文链接:http://www.runoob.com/git/git-install-setup.htmlgit book:https://git-scm.com/book/zh/v2Git 安装配置在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。Git 各平台安装包下载地址为:http://git...

2018-08-06 20:10:35 312

转载 C++/C 宏定义(define)中# ## 的含义 宏拼接

原文链接:点击打开链接C++/C 宏定义(define)中# ## 的含义define 中的# ## 一般是用来拼接字符串的,但是实际使用过程中,有哪些细微的差别呢,我们通过几个例子来看看。#是字符串化的意思,出现在宏定义中的#是把跟在后面的参数转成一个字符串;eg:#define  strcpy__(dst, src)      strcpy(dst,

2017-10-09 09:21:13 5048

原创 <stdarg.h>头文件的使用

可变参数试想一下我们假如想定义一个函数,我们在调用之前(在运行期之前)根本不知道我到底要调用几个参数,并且不知道这些参数是个什么类型,例如我们想定义一个函数:int max(int n, ...);用来返回一串随意长度输入参数的最大值,例如调用max(3, 10, 20, 30)的时候,可以返回(n=3)个数 10,20,30 的最大值30。并且还可以接受任

2017-09-18 19:50:48 1104

转载 source insight使用方法简介

原文链接:点击打开链接一、自我介绍一下:Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。Source Insight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。 Source Insight不仅仅是一个强大的程序编辑器,它还能显示referencetree

2017-09-13 16:48:20 18446

转载 大小端详解

原文网址:http://blog.csdn.net/self001/article/details/8060407端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内

2017-09-02 14:55:13 391

原创 行为型模式之访问者模式(Visitor)

1. 意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。2. 动机考虑一个编译器,它将源程序表示为一个抽象语法树。该编译器需在抽象语法树上实施某些操作以进行“静态语义”分析,例如检查是否所有的变量都已经被定义了。它也需要生成代码。因此它可能要定义许多操作以进行类型检查、代码优化、流程分析,检查变量是否在使用前被赋初值,等等。此

2017-05-17 17:17:00 434

原创 行为型模式之模板方法模式(TemplateMethod)

1. 意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Te m p l a t e M e t h o d使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2. 动机在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用过程中,对架构来说我们需要支持多种压缩文件类型,但却有固定的操作顺序(先解压缩,在读取里面的文件分析、制作pdf)。我们抽取他们

2017-05-17 16:24:10 435

原创 行为型模式之策略模式(Strategy)

1. 意图定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。2. 动机有许多算法可对一个正文流进行分行。将这些算法硬编进使用它们的类中是不可取的,其原因如下:• 需要换行功能的客户程序如果直接包含换行算法代码的话将会变得复杂,这使得客户程序庞大并且难以维护, 尤其当其需要支持多种换行算法时问题会更加严重。• 不同的时候需要

2017-05-17 15:42:07 402

原创 行为型模式之状态模式(State)

1. 意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。2. 动机考虑一个表示网络连接的类T C P C o n n e c t i o n。一个T C P C o n n e c t i o n对象的状态处于若干不同状态之一: 连接已建立( E s t a b l i s h e d)、正在监听( L i s t e n i n g )、连接已关闭( C l

2017-05-17 15:05:53 486

原创 行为型模式之观察者模式(Observer)

1. 意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。2. 动机将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,因为这样降低了它们的可重用性。O b s e r v e r模式描述了如何建立这种关系。这一模式中的关键对象是目标( s u b j

2017-05-17 10:04:51 356

原创 行为型模式之备忘录模式(Memento)

1. 意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。2. 动机有时有必要记录一个对象的内部状态。为了允许用户取消不确定的操作或从错误中恢复过来,需要实现检查点和取消机制, 而要实现这些机制,你必须事先将状态信息保存在某处,这样才能将对象恢复到它们先前的状态。但是对象通常封装了其部分或所有的状态信息, 使得其状态

2017-05-16 10:42:18 368

原创 行为型模式之中介者模式(Mediator)

1. 意图用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。2. 动机面向对象设计鼓励将行为分布到各个对象中。这种分布可能会导致对象间有许多连接。在最坏的情况下,每一个对象都知道其他所有对象。虽然将一个系统分割成许多对象通常可以增强可复用性, 但是对象间相互连接的激增又会降低其可复用性。大量的相互连接使得一个对

2017-05-15 16:53:47 385

原创 行为型模式之迭代器模式(Iterator)

1. 意图提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。2. 动机一个聚合对象, 如列表(list), 应该提供一种方法来让别人可以访问它的元素,而又不需暴露它的内部结构. 此外,针对不同的需要,可能要以不同的方式遍历这个列表。但是即使可以预见到所需的那些遍历操作,你可能也不希望列表的接口中充斥着各种不同遍历的操作。有时还可能需要在同一个表列上同时进行多个

2017-05-15 15:57:55 480

原创 行为型模式之解释器模式(Interpreter)

1. 意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2. 动机如果一种特定类型的问题发生的频率足够高, 那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器, 该解释器通过解释这些句子来解决该问题。3.结构①AbstractExpression:定义解释器的接口,约定解释器的解释操作。其中

2017-05-15 11:38:10 405

原创 行为型模式之命令模式(command)

1. 意图将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。2. 动机有时必须向某对象提交请求,但并不知道关于被请求的操作或请求的接受者的任何信息。例如,用户界面工具箱包括按钮和菜单这样的对象,它们执行请求响应用户输入。但工具箱不能显式的在按钮或菜单中实现该请求,因为只有使用工具箱的应用知道该由哪个对象做哪个操作。而工具箱

2017-05-15 09:34:46 369

原创 行为型模式之职责链模式(Chain of responsibility)

1. 意图使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2. 动机考虑一个图形用户界面中的上下文有关的帮助机制。用户在界面的任一部分上点击就可以得到帮助信息,所提供的帮助依赖于点击的是界面的哪一部分以及其上下文。例如,对话框中的按钮的帮助信息就可能和主窗口中类似的按钮不同。如果对那一部分界

2017-05-13 10:56:35 596

原创 结构型模式之代理模式(Proxy)

1. 意图为其他对象提供一种代理以控制对这个对象的访问。2. 动机因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ? 你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决一个更大的问题:你如何提供一致的接口给某个对象让

2017-05-11 10:08:11 447

原创 结构型模式之享元模式(FlyWeight)

1. 意图运用共享技术有效地支持大量细粒度的对象。2. 动机有些应用程序得益于在其整个设计过程中采用对象技术,但简单化的实现代价极大。例如,大多数文档编辑器的实现都有文本格式化和编辑功能,这些功能在一定程度上是模块化的。面向对象的文档编辑器通常使用对象来表示嵌入的成分,例如表格和图形。尽管用对象来表示文档中的每个字符会极大地提高应用程序的灵活性,但是这些编辑器通常并不这样做。字符和嵌入

2017-05-10 20:25:18 335

原创 结构型模式之外观模式(Facade)

1. 意图为子系统中的一组接口提供一个一致的界面, F a c a d e模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2. 动机将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(f a c a d e)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。

2017-05-08 11:01:39 493

原创 结构型模式之装饰(Decorator)

1. 意图动态地给一个对象添加一些额外的职责。就增加功能来说, D e c o r a t o r模式相比生成子类更为灵活。2. 动机有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种

2017-05-05 17:23:22 410

原创 结构型模式之组合模式(Composite)

1. 意图将对象组合成树形结构以表示“部分-整体”的层次结构。C o m p o s i t e使得用户对单个对象和组合对象的使用具有一致性。2. 动机在绘图编辑器和图形捕捉系统这样的图形应用程序中,用户可以使用简单的组件创建复杂的图表。用户可以组合多个简单组件以形成一些较大的组件,这些组件又可以组合成更大的组件。一个简单的实现方法是为Te x t和L i n e这样的图元定义一些类,

2017-05-05 11:20:11 466

原创 结构型模式之桥接模式(Bridge)

1. 意图将抽象部分与它的实现部分分离,使它们都可以独立地变化。2. 动机当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。3. 举例就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们

2017-05-05 10:08:00 451

原创 结构型模式之适配器模式(Adapter)

1. 意图将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2. 动机有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。分为两种,一种是类适配器,另外一种是对象适配器。3. 实例Student类表示学生群体,Teacher类表示教师群体,学生可以进行学习的行为,

2017-05-04 17:10:44 323

转载 创建型模式之原型模式

原文链接:点击打开链接功能:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象创建另外一个可定制的对象,而且不需知道任何创建的细节。优点:     一般在初始化的信息不发生变化的情况下,克隆是最好的办法,既隐藏了对象创建细节,又提高性能。其等于是不用重新初始化对象,而是动态地获得对象运行时的状态。缺点:  模

2017-05-04 15:22:32 301

转载 创建型模式之单例模式

原文链接:点击打开链接功能:保证一个类仅有一个实例,并提供一个访问它的全局访问点。优点: 提供了对唯一实例的受控访问。因为单例类封装了它的唯一实例,所以它可以严格控制客户怎样以及何时访问它,并为设计及开发团队提供了共享的概念。由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象,单例模式无疑可以提高系统的性能。允许可变数目的实例。我们可

2017-05-04 14:47:23 502

转载 创建型模式之建造者模式

原文链接:点击打开链接功能:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。优点: 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。每一个具体建造者都独立,因此可以方便地替换具体建造者或增加新的具体建造者, 用户使用不同的具体建造者即可得到不同的产品对象 。可以更加精细地控制产品的创建过程

2017-05-04 10:44:24 493

转载 创建型模式之抽象工厂模式

原文链接:点击打开链接功能:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。优点: 抽象工厂模式隔离了具体类的生成,使得客户并不需要知道什么被创建。由于这种隔离,更换一个具体工厂就变得容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。另外,此模式可以实现高内聚低耦合的设计目

2017-05-03 10:48:56 381

空空如也

空空如也

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

TA关注的人

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