自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 走进C++11(七)禁用默认函数

----君子的力量永远是行动的力量,而不是语言的力量。在传统C++中,若用户没有提供, 则编译器会自动为对象生成默认构造函数(default constructor)、 复制构造函数(copy constructor),赋值运算符(copy assignment operator operator=) 以及析构式(destructor)。另外,C++也为所有的类定义了数个全局运算符(如operator delete及operator new)。当用户有需要时,也可以提供自定义...

2020-11-21 16:44:06 946

原创 走进C++11(六) 委托构造

----你坚持下来了,而别人坚持不下来,这就是你的资本。《C++Primer》一书中关于委托构造函数是这样描述的:一个委托构造函数使用它所属的类的其他构造函数执行自己的初始化过程,或者说它把自己的一些(或者全部)职责委托给了其他构造函数。和其他构造函数一样,一个委托构造函数也有一个成员初始值的列表和一个函数体。在委托构造函数内,成员的初始值列表只有一个唯一的入口,就是类名本身。和其他成员初始值一样,类名后面紧跟圆括号括起来的参数列表,参数列表必须与类中另外一个构造函...

2020-11-21 16:42:15 520

原创 走进C++11(五) 继承构造

----你的人生不会辜负你的。那转错的弯,流下的泪水,滴下的汗水,全都让你成为独一无二的自己。只是努力了一阵子,但一遇到困难就各种忧伤,好像自己努力了很久一样。继承构造在继承体系中,假设派生类想要使用基类的构造函数,必须要在构造函数中显式声明。举个小例子:class Base {public:int value1;int value2;Base() { value1 = 1;}Base(int value) : Base() { // 委托 Base() 构造...

2020-11-21 16:40:07 321

原创 走进C++11(四)override/final

---清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。今天是一年一度的清明节,各大网站纷纷跟进号召,仿佛世界都变成了黑白的。在这个特殊的节日里我们谈谈和继承控制。这两个关键字并不能提升程序性能也不会影响程序逻辑,他们存在的作用就是控制继承关系。override描述:override是C++11中的一个继承控制关键字。override确保在派生类中声明的重载函数跟基类的虚函数有相同的声明。over...

2020-11-21 16:37:02 217

原创 走进C++11(三)“类” 类型的union

Union其实是不想介绍的一个关键字,因为union的功能即将被C++17标准中的variant所代替,而且variant更加安全。但是还是要在这里介绍一下。union(联合体)和struct相似,也可以包含多个数据成员,但是不同的是同时只允许一个成员有效,因此经常作为作为节约空间的类使用。C++11中union除了继承c语言的数据共享内存之外,行为上越来越像一个类,比如成员默认是public类型。在C++11以后,很多基础语法都进行了修正。其中 union 的行为向类对象...

2020-11-21 16:34:37 944

原创 走进C++11(二)面向对象之enum 强类型枚举

C++11 面向对象系列总得来说,C++11标准是一群天才们制定的,每一个标准的制定都有其应用改进的场景。Enum也不例外,这个C++11系列都会有小例子或者分析它解决了什么痛点。what is enumin C++98/C++11我们在编程时有时想让一个变量的值只在规定范围里取值,那么就会考虑使用enum类型。C++11之前的enum类型是继承C的:enumcolor{RED,GREEN,BLUE,BLACK};然后我们再...

2020-11-21 16:31:55 1011

原创 走进C++11(一)开篇

Bjarne Stroustrup:“Surprisingly, C++11 feels like a new language - the pieces justfit together better.“这个系列主要介绍C++11的一些新的特性,C++11问世至今已经有将近十年了。但是许多公司仍然停留在C++98上。之前在部门分享过C++11的知识,在这里分享给有需要的人。C++是一门伟大的语言,永远给程序员最大的设计自由, 未使用的特性从不产生副作用,新版本永远完全兼容旧版本...

2020-11-19 10:29:09 256

原创 Docker pull 发生了什么 -- overlay2

阅读前提: 浏览一下网页docker manifest usage:https://docs.docker.com/engine/reference/commandline/manifest/manifest V2 description:https://docs.docker.com/registry/spec/manifest-v2-2/docker pull 流程docker发送...

2019-10-21 16:01:48 1160

原创 boost log -- header only 的心酸历程(四)

好久没有谈论boost log这个话题了。前两天突然发之前由于粗心,忽略了一些问题。之前为了引用方便,将这个转换成header only。header only的好处就是-- 使用时不用额外的link动态库。这样应用它的时候更加方便。坏处就是 -- 增加重新编译的时间。这都不是关键。 为了实现logger 功能的全局可见。 首先想到的就是用单例模式。然而单例模式如果不是header onl...

2019-09-03 10:20:33 1196

原创 docker 有关/etc/{hosts,hostname,resolv.conf}

1)为什么/etc/{hosts,hostname,resolv.conf}文件是从外面安装的?我至少看到一个原因。想象一下,如果容器引擎只是将这些文件写入容器的文件系统并且用户决定挂载/etc为卷(这是完全合法且非常有用的 - 安装/etc将允许用户为容器提供多个配置文件,会发生什么情况一个-v论点docker run):首先,卷安装到容器的/etc目录; 然后它的内容由容器引擎改...

2019-08-03 09:17:11 1609

原创 docker 存储驱动(三)----- docker 是怎么知道image大小的,以及container大小的(overlay2)

在研究docker overlay时候碰到一个很有趣的问题。也就是docker images时候显示image的大小。docker是怎么知道image大小的?众所周知,dockers是分层存储image的。不同的image可以share同一层。那么他们是怎么share同一层layer的?image 如何存储问题的答案首先要从docker inspect开始,这里我们只关注RootFS:r...

2019-07-30 14:38:29 1263

原创 docker 存储驱动(二) ---- docker启动时文件操作(hostname hosts resolv.conf)

上一篇文章学习了overlay2的基本知识, 分享时候发现有个问题。就是2cda8c39e97b6157f8599f83c50c4591da423a2c3c0abd20302140c515a876a9-init这种xxx-init文件是干什么用的。搜了几篇文章都说这个是系统初始化时候,解决host问题的。但是具体过程都没有说明。为此做了一些尝试。首先看看host 中的resolve.conf...

2019-07-22 15:16:32 1764

原创 如何限制docker container 最大磁盘 -- docker overlay2 over xfs -- pquota

最近研究docker images。 出现一个问题。 在container 里查看磁盘,发现在host上overlay多大,在container中 “/”就多大。这样可能就会有个问题,要是在container中不断的写磁盘,如果占用太多的话,可能会占满磁盘。docker run -ti --storage-opt size=20g centos bash这回返回说让我们开启xfs的pquo...

2019-07-04 10:00:57 5068

原创 boost log -- 使用心得和碰到的那些坑(三)

为什么有这篇文章(what)前面曾经写过两篇文章关于boost::logger的。 当时只是想学习一下怎么使用boost::logger。 前两天再次看到这个rep。想再完善一下这个rep, 用这篇文章记录一下过程和想法。原来的rep有什么缺陷?(why)在生产实践中,作为调试需求, log功能可能会被频繁的调用。原来的rep每次调用以后,虽然不会写到boost::log中,但是都已经组装...

2019-06-03 08:47:39 2265

原创 docker 存储驱动(一) ---- overlay2

官方的文档请参考:docker overlay stroage一直很好奇docker是怎么存image的。再这总结一下。前提OverlayFS is supported if you meet the following prerequisites:The overlay2 driver is supported on Docker CE, and Docker EE 17.06.02...

2019-05-21 16:13:05 1641

转载 好用的http client库CPP REST SDK

好用的http client库CPP REST SDK转自: https://www.cnblogs.com/highway-9/p/6021238.html前言C++中http client库本身就少,好用的就更少了,在了解微软开源的CPP REST SDK库之前,我知道的C++ http client库有libcurl(这个是C语言的),Qt的QNetworkAccessMan...

2018-12-23 07:18:15 2710

原创 对于线程间传递消息的一些想法 -- 智能指针+lambda caputre(封装task)

背景最近公司开源了一个redis client,header only,项目地址: https://github.com/nokia/wiredis 。 作为公司build-block redis clinet 的维护者。 和作者聊了聊这个项目的想法和road map。 同时也提了一点建议,其中有个建议就是这篇文章要写的。这个项目是header only的,所以文件很少,层次很清晰。主要有连个...

2018-12-09 09:35:44 989

原创 C++ 异步编程探索(二) thread safe

前言在异步编程实践中,曾经遇到的最大的问题就是thread safe 问题。我所在的团队是Database团队,主要是为APP提供和redis交互的API。场景就是application thread调用我们的API。我们有个worker thread负责网络I/O。我们的API基于hiredis,hiredis声明自己不是thread-safe。这也很正常,看了看hireids的代码,关于...

2018-11-02 09:23:33 893

原创 C++ 异步编程探索(一) task链式调度 -- future CONTINUATION

同步Vs异步编程, 一直是大家讨论的热点。 同步编程以其逻辑简单,受到了一些对时间不敏感的程序青睐,而异步编程以其高效深受处女座程序员喜爱。作为一只处女座程序猿,当然要异步异步异步。。。说到异步, C++11之前, 用的最多的就是各种callback function。举个例子, 假如你是一个老板,告诉自己的秘书把文件打印出来,打完了送给我。然后你就可以干别的活,等打印好了,秘书会到你的办公室...

2018-10-31 11:18:47 3122

原创 boost log -- 使用心得和碰到的那些坑(二)

前一篇文章boost log – 使用心得和碰到的那些坑(一) 写了如何使用boost;;log, 这篇文章主要写写怎样用boost;;log构建一个工程,目的就是让用户使用时忘掉log细节。项目依赖boost c++11 cmake设计为了以后扩展方便,将log设计成接口。 接口提供基本的log功能:class logger_iface{ public: public: l...

2018-10-21 07:20:29 2567

原创 boost log -- 使用心得和碰到的那些坑(一)

boost log -- 使用心得和碰到的那些坑定义日志记录 Log record属性 attribute属性值(属性)值访问(属性)值提取Log sink日志源Log source日志过滤器Log filter日志格式化工具Log formatter日志核心Logging core国际化 i18n线程本地存储 TLS实时类型信息RTTI实现日志源属性和属性值日志核心和过滤实现需求减少对程序运行...

2018-10-19 14:06:32 11914 1

转载 SO_REUSEPORT 集合

当前Linux网络应用程序问题运行在Linux系统上网络应用程序,为了利用多核的优势,一般使用以下比较典型的多进程/多线程服务器模型:单线程listen/accept,多个工作线程接收任务分发,虽CPU的工作负载不再是问题,但会存在: 单线程listener,在处理高速率海量连接时,一样会成为瓶颈 CPU缓存行丢失套接字结构(socket structure)现象严重 所有工作...

2018-09-04 09:13:50 719

原创 访问boost::variant &&std::variant

std::visit 定义于头文件 <variant>     template <class Visitor, class... Variants> constexpr /*see below*/ visit(Visitor&& vis, Variants&&... vars); ...

2018-07-25 08:56:25 1013

转载 OCI规范 镜像规范

容器OCI规范 镜像规范前言OCI 镜像规范初步OCI 文件类型Media TypeMedia Type 的不一致OCI Content DescriptorContent Descriptor 属性摘要和校验Content Descriptor 示例OCI 镜像布局规范详细内容示例Blobs 文件夹Blobs 示例oci-layout 文件oci-layout 示例indexjson 文件ind...

2018-07-16 14:00:55 3703

转载 How to Enable and Use Windows 10’s New Built-in SSH Commands

Microsoft announced it was bringing an integrated OpenSSH client to Windows in 2015. They’ve finally done it, and an SSH client is hidden in Windows 10’s Fall Creators Update. You can now connect to a...

2018-06-21 14:02:56 421

转载 mesh network

IntroductionMeshwork follows the layered OSI model in which one layer is implemented on top of another.L1: Physical LayerThe PHY layer is implemented in Cosa within Wireless::Driver implemen

2018-01-15 07:34:22 1202

转载 save

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I

2018-01-12 13:21:59 437

转载 How To Run ATmega328P For a Year On Coin Cell Battery

An Arduino Uno runs less than one day on a 9 V battery because it uses about 45 mA current. Using an Arduino Pro Mini, with a simple modification, the power consumption goes down to 54 μA (0.054 mA) w

2017-12-29 07:54:31 800

转载 docker sharing -- code

概要阅读准备docker-daemon关于日志源码分析概要从docker源码的角度分析docker daemon怎么将容器的日志收集出来并通过配置的log-driver发送出去。阅读准备本文适合能够阅读和编写golang代码的同学。 (1)首先你需要认知以下几个关键词: * stdout: 标准输出,进程写数据的流。 * stderr: 错误输出,进程写错误数据的流。 * 子进程

2017-12-19 14:55:31 458

原创 Docker log sharing

View logs for a container or servicethe docker service logs command shows information logged by all containers participating in a service. The information that is logged and the format of the log depe

2017-12-19 14:28:10 540

转载 go 反射规则

反射规则在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。每个语言的反射模型都不同(同时许多语言根本不支持反射)。Go语言实现了反射,所谓反射就是动态运行时的状态。

2017-12-19 13:15:49 460

转载 arduino: read unique ID

在实际应用中,我们可能需要唯一的设备ID用于标识设备或者进行功能加密等操作。Arduino中并未直接提供此类接口,那么是否可以实现此类功能呢?答案是肯定的。在AVR的LIBC库中提供了以下定义(boot.h):Read the Signature Row byte at address. For some MCU types, this function canalso ret

2017-12-14 10:23:43 3058

转载 Template Meta-programming

Template Meta-programming overviewTemplate meta-programming (TMP) refers to uses of the C++ template system to perform computation at compile-time within the code. It can, for the most part, be cons

2017-11-28 07:59:11 694

转载 c++ __declspec usage

c++ 中__declspec 的用法语法说明:__declspec ( extended-decl-modifier-seq )扩展修饰符:1:align(#)    用__declspec(align(#))精确控制用户自定数据的对齐方式 ,#是对齐值。e.g__declspec(align(32)) struct Str1{int

2017-11-22 07:41:42 448

转载 bufferevent 流程

原文和之前的《Libevent工作流程探究》一样,这里也是用一个例子来探究bufferevent的工作流程。具体的例子可以参考《Libevent使用例子,从简单到复杂》,这里就不列出了。其实要做的例子也就是bufferevent_socket_new、bufferevent_setcb、bufferevent_enable这几个函数。        因为本文会用到《Libevent工作流程

2017-11-09 14:29:26 692

转载 linux socket tuning

在开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本文内容包括对于 Sockets API 的使用、两个可以提高性能的 socket 选项以及 GNU/Linux 优化。为了能够开发性能卓越的应用程序,请遵循以下技巧:最小化报文传输的延时。最小化系统调用的负载。为

2017-11-03 12:42:14 456

转载 深入理解 boost::bind

Asynchronous operations in Asio all expect a function object argument, the completion handler, which they invoke when the asynchronous operation completes. The signature of the handler depends on the

2017-10-30 14:49:20 855

转载 CURL 用法

我一向以为,curl只是一个编程用的函数库。最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。===================================curl网站开发指南阮一峰 整理curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面举例讲解如何将它用于

2017-10-20 09:46:22 546

转载 URL的组成部分

URL 的组成部分URL(统一资源定位符)是 URI(通用资源标识)的特定类型。URL 通常在因特网上查找现有资源。当 Web 客户机向服务器发出对资源的请求时,使用 URL。URI 和 URL 的概念由因特网协会和 IETF(因特网工程任务组织)请求评论文档 RFC 2396 统一资源标识(URI):一般语法定义(http://www.ietf.org/rfc/rfc2396.txt)。简要地说,

2017-09-30 14:16:53 5145

转载 Redis Cluster原理和应用

全面剖析Redis Cluster原理和应用1.Redis Cluster总览1.1 设计原则和初衷在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子。最核心的目标有三个:性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式、异步复制、客户端重定向等设计,而牺牲

2017-09-22 12:49:42 1534

空空如也

空空如也

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

TA关注的人

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