自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker image 存储路径 解析

在生产环境中,经常遇到docker image 在资源池中的主机上存留的数据,由于随着业务系统的升级,旧的image 需要进行清理。这里梳理下,docker image的在linux 系统上的存储目录,以针对性的进行数据清理。在3.10内核上 docker基于aufs管理存储下面的命令可以看到所有pull到的imagescat /var/lib/docker/repos

2016-10-27 16:16:05 31430

原创 Docker Guideline Docker 上手操作

docker 中的基本概念1 docker image 镜像是一个只读模板,用以创建运行时的容器,提供app的运行环境2 docker container 容器是从镜像创建的实例 容器之间相互隔离3 docker hub 仓库是image集中存放的管理者。docker hub是公开的仓库。 4 docker registery 注册服务器可以管理多个仓库。可以通过docker

2016-10-27 15:53:19 458

原创 Singleton In C++

单例模式是指某些对象保证全局只有一个。如何在C++中实现具有线程安全的单例模式呢?下面是一些实现方式:1 简单的思路 通过类的static方法,定义类的static成员,为了保证线程安全,在进行初始化创建时加锁。/** * simple younger */class T {public: static T * Instance() {

2016-09-21 21:35:14 421

原创 Docker 与 PAAS

docker 与 PAAS平台

2016-07-28 17:14:39 7905 1

原创 linux 异步IO AIO

某些应用不希望使用文件系统的缓存,而直接发起io请求,就会使用O_DIRECT选项。比如数据库等应用自身有缓存,不期望下层再做一次缓存。再比如使用SSD性能时,由于内核对于pdflush的控制可能会导致SSD的性能不稳定,一般也使用dio进行。此时为了高效的使用操作系统资源以及获得更高的性能往往使用异步IO。理论上异步IO单线程的IO栈的深度可以同等于同步IO的多线程的线程数目,以达到相同

2015-04-16 20:33:00 1972 1

原创 Decorator 装饰

动态的给一个对象增加一些额外的职责。 对于增加功能来说,Decorator模式比生成子类更为灵活。使用继承是添加功能的一种有效途径,从其他类继承过来的特性可以被多个子类实例使用。但是这种方法不够灵活,用户不能控制对新功能增加的方式和时机。一种灵活的方式是将要扩展的组件对象嵌入到另外一个对象中,由这个对象负责新的功能。这个嵌入对象就是装饰。 装饰的接口与要扩展

2015-03-17 00:29:38 288

原创 Composite 组合

将对象组合成树形结构以表示 部分-整体 的层次结构。比如这样的一个场景(书上的例子): 有text、line这样的一些图元,可以组合成较大的组件。而组合后的组件又可以组合成更大的组件。一种简单的实现,是为text、line定义一些类,另外定义一些类作为这些图元的容器类。这样的问题在于,图元与容器是两类对象,但是实际上组件应当具有图元的性质。组合composite的关键就是一

2015-03-13 01:10:13 343

原创 Bridge 桥接模式

将抽象部分与实现部分分离,使得都可以独立地变化。使用原因:一个抽象可能会有多个实现,往往通过继承来协调。但是抽象部分(对现实事物的抽象)和实现部分(具体实现)会在继承时绑定,不够灵活。举例(这里使用设计模式一书中的例子):我们需要一个window类,并且需要window类在xwindow 以及pmwindow下的不同实现。我们还会需要IconWindow来展示图标,BoxW

2015-03-12 01:16:19 417

原创 适配器 Adapter

适配器: 将一个类的接口转化为客户希望的另外一个接口。使得原本由于接口不兼容而不能组合在一起工作的那些类可以一起工作。使用适配器的原因: 有的情况下,有些类不能复用的原因仅仅是接口不兼容。比如:我们有一个继承体系,父类F拥有抽象方法GetCount,返回成员个数。用户希望使用F类的GetCount接口,而又有一个类T只有方法ListMem返回所有的成员。如何才能复用类T呢?

2015-03-11 23:50:05 249

原创 Abstract Factory 抽象工厂

创建型模式抽象了实例化过程。使得系统独立于如何创建、组合和表示它的对象。类的创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。系统的增长变化会主要依赖于对象的复合而不是类的继承。Abstract Factory 抽象工厂 ---对象创建型模式提供一个创建一系列相关或者相互依赖的对象的接口,不需要指定具体的类。组成:工厂类由

2015-03-09 23:31:07 258

原创 基本排序算法

基本排序算法

2015-03-09 22:28:30 317

原创 vim ctags的使用

把vim和ctags的使用方法记录一下,免得工作环境换了,又要查。这里不介绍ctags的基本使用,说下ctags的常用的使用方法由于我们使用的是vim+ctags,由于ctags跳转时,不支持对函数的signature的判断,可能同一个函数会有很多个tag出现。极端情况下,c++中很多类如果都有一个同名的函数,跳转的时候会看到一个超大的列表。这个问题如果你有好的解决方案

2015-03-02 20:05:50 477

空空如也

空空如也

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

TA关注的人

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