09 2016 档案

摘要:fcntl可实现对指定文件描述符的各种操作,其函数原型如下: 其中,操作类型由cmd决定。cmd可取如下值: F_DUPFD:复制文件描述符 F_DUPFD_CLOEXEC:复制文件描述符,新文件描述符被设置了close-on-exec F_GETFD:读取文件描述标识 F_SETFD:设置文件描述 阅读全文
posted @ 2016-09-30 16:16 后端技术小屋 阅读(13907) 评论(0) 推荐(0) 编辑
摘要:logrotate是linux自带的日志管理工具。服务器如果不对日志进行滚动操作,单个日志文件的增长速度极快,不利于日志查找和问题定位。而logrotate能够自动完成日志的截断、压缩和滚动操作。 安装:系统自带,无需安装 配置 编写配置文件: create: 滚动之后, 会重新touch原文件 d 阅读全文
posted @ 2016-09-30 13:53 后端技术小屋 阅读(1785) 评论(0) 推荐(0) 编辑
摘要:supervisor是python写的进程管理工具,supervisor能够批量对进程执行启动,停止,重启等操作,有效提高了运维效率。注意supervisor只能管理前台进程,supervisor会自动将该进程转为守护进程。 安装 配置 打开/etc/supervisord.conf文件,增加以下两 阅读全文
posted @ 2016-09-29 22:22 后端技术小屋 阅读(363) 评论(0) 推荐(0) 编辑
摘要:环境:rhel6.6 安装: 安装依赖包 将高版本g++(4.8以上)取代rhel6.6自带的低版本g++ 配置编译环境 编译mesos 启动 接下来就是编写framework执行任务了,留待下回分解 阅读全文
posted @ 2016-09-29 22:03 后端技术小屋 阅读(2152) 评论(0) 推荐(0) 编辑
摘要:更多精彩内容,请扫码关注微信公众号:后端技术小屋 std::atomic_flag std::atomic_flag是一个原子的布尔类型,可支持两种原子操作: test_and_set, 如果atomic_flag对象被设置,则返回true; 如果atomic_flag对象未被设置,则设置之,返回f 阅读全文
posted @ 2016-09-27 21:18 后端技术小屋 阅读(65997) 评论(0) 推荐(3) 编辑
摘要:在c++11中,nullptr可完全代替NULL. 然而NULL和nullptr还是稍有不同,NULL可被转化为int类型,而nullptr不能。因此nullptr对NULL在进行模板推导或者函数重载时的缺陷。 foo(nullptr)输出"int*", foo(NULL)输出"int" 阅读全文
posted @ 2016-09-27 20:41 后端技术小屋 阅读(455) 评论(0) 推荐(0) 编辑
摘要:更多精彩内容,请扫码关注微信公众号:后端技术小屋。 std::future可以从异步任务中获取结果,一般与std::async配合使用,std::async用于创建异步任务,实际上就是创建一个线程执行相应任务。 先看段代码: #include <future> #include <iostream> 阅读全文
posted @ 2016-09-27 20:22 后端技术小屋 阅读(20472) 评论(0) 推荐(0) 编辑
摘要:在c++中,为了便于定位问题,进程异常退出时,需要获取返回码和错误信息。stout中将这种功能巧妙的封装成EXIT类。 __EXIT类以返回码作为构造函数参数,在析构时,先将错误信息输出到cerr中,再执行exit(status)。这是RAII的一次巧妙实践。 用户只需要执行 就可以1退出,同时输出 阅读全文
posted @ 2016-09-25 11:07 后端技术小屋 阅读(280) 评论(0) 推荐(0) 编辑
摘要:hashmap是std::unordered_map的子类,前者对后者的接口做了进一步封装。 hashmap的移动构造函数: std::make_move_iterator会将map.begin和map.end()转化为std::iterator类型,从而能够使用unordered_map::ins 阅读全文
posted @ 2016-09-25 10:33 后端技术小屋 阅读(1342) 评论(0) 推荐(0) 编辑
摘要:stout中大量使用了c++11的特性,而c++11中move和forward大概是最神奇的特性了. 直观理解:左值在等号左边,右值在等号右边 深入理解:左值有名称,可根据左值获取其内存地址,而右值没有名称,不能根据右值获取地址。 2. 引用叠加规则 左值引用A&和右值引用A&& 可相互叠加 举例示 阅读全文
posted @ 2016-09-21 23:19 后端技术小屋 阅读(4720) 评论(0) 推荐(2) 编辑
摘要:stout大量使用了c++11的一些新特性,使用这些特性有利于简化我们的代码,增加代码可读性。以下将对一些容器的新特性做一个总结。主要两方面: 容器的初始化,c++11中再也不用手动insert或者push_back来初始化了 容器的遍历,c++11中再也不用使用冗长的迭代器遍历了 容器的empla 阅读全文
posted @ 2016-09-20 08:21 后端技术小屋 阅读(391) 评论(0) 推荐(0) 编辑
摘要:stout中实现了LRU cache。cache的成员如下: 可以看到map的第二项除了value之外,又有一个指向key的迭代器,这种设计有利于提高cache LRU操作的效率:当查询某个key时,同时获取value和key在list中的迭代器,可方便的将该key和ist中最后一个元素进行交换,如 阅读全文
posted @ 2016-09-20 08:11 后端技术小屋 阅读(352) 评论(0) 推荐(0) 编辑
摘要:Result类似于Option和Try类的组合,内部有三种状态 SOME表示Result对象有值 NONE表示Result对象值为空 ERROR表示异常 api如下: none, 返回状态为NONE的Result实例 some,返回状态为SOME的Result实例 error, 返回状态为ERROR 阅读全文
posted @ 2016-09-19 23:16 后端技术小屋 阅读(251) 评论(0) 推荐(0) 编辑
摘要:在进行性能测试时,经常需要计算某个函数执行的时长。stout中的Stopwatch类可实现纳秒精度的计时。 Stopwatch内部使用timespec记录开始和技术时间。 timeval和timespec稍有不同,有两点: timeval精确到微秒,而timespec精确到纳秒 获取当前时间,tim 阅读全文
posted @ 2016-09-19 23:05 后端技术小屋 阅读(379) 评论(0) 推荐(0) 编辑
摘要:UUID全称通用唯一识别码,被广泛应用于分布式系统中,让所有的元素具有唯一的标识。 stout中UUID类继承自boost::uuids::uuid。api如下: random, 产生一个UUID对象。 fromBytes,从字节数组生成UUID对象 fromString, 从字符串生成UUID对象 阅读全文
posted @ 2016-09-19 22:52 后端技术小屋 阅读(298) 评论(0) 推荐(0) 编辑
摘要:stout的在异常捕获上遵循于谷歌类似的原则,不适用try...catch...,而是从函数返回值判断异常。Try类正是实现了这样的一个功能。 同Option一样,Try是一个模板类,每个类对象都有两种状态。 SOME表示无异常,用户可获取指针t。ERROR表示有异常,用户可用过message获取异 阅读全文
posted @ 2016-09-18 15:05 后端技术小屋 阅读(338) 评论(0) 推荐(0) 编辑
摘要:为了安全表示NULL, stout实现了Option类。Option对象有两种状态: 其中SOME表示非空,NONE表示为空。可通过isSome和isNone判断Option对象是否为空。 Option类符合RAII的特性,构造函数和析构函数如下: 注意 Option类似于boost::unique 阅读全文
posted @ 2016-09-17 20:04 后端技术小屋 阅读(350) 评论(0) 推荐(0) 编辑
摘要:stout库中为了避免使用NULL带来的风险,统一用None表示空。 None类的实现方式如下: 奇怪的是, Nothing类实现方式与None一模一样。。让人怀疑作者是不是写重了。 阅读全文
posted @ 2016-09-16 21:48 后端技术小屋 阅读(207) 评论(0) 推荐(0) 编辑
摘要:Duration类用于表示时间长度,可精确到纳秒。 代码实现在duration.hpp中,测试代码:duration_tests.cpp 相关api如下: parse, 将字符串转化成Duration对象 create, 将秒数转化为Duration对象 ns, us, ms, secs, mins 阅读全文
posted @ 2016-09-16 21:29 后端技术小屋 阅读(593) 评论(0) 推荐(0) 编辑
摘要:最近在使用mesos做高可用设计,在编译的过程中注意到mesos依赖stout,一个仅仅含有头文件的c++基础库。stout代码简洁,设计优雅,值得一读。 stout从内容上可细分为以下几块: 接下来将stout中的类库进行逐个分析。欲知详情,请等待下期分解。 阅读全文
posted @ 2016-09-16 20:34 后端技术小屋 阅读(708) 评论(0) 推荐(0) 编辑