- 博客(18)
- 资源 (12)
- 收藏
- 关注
转载 写时拷贝(copy-on-write) COW技术
一、写时拷贝的概念——COW技术在Linux进程上的应用 Linux在使用fork()函数进程创建时,传统fork()的做法是系统把所有的资源复制给新创建的进程,这种方式不仅单一,而且效率低下。因为所拷贝的数据或别的资源可能是可以共享的。现在Linux的fork()使用写时拷贝页来实现新进程的创建,它是一种可推迟甚至避免数据拷贝的技术,刚开始时内核并不会复制整个地址空间,而是让父子进...
2019-02-28 12:15:58 1860
原创 C++11:lambda表达式的陷阱
1、对于lambda表达式,避免使用默认捕获模式1.1 对于lambda表达式,避免使用默认捕获模式个人看法 英文原著中使用的是“avoid default capture modes”,所以我在文中翻译为“避免使用默认捕获模式”,但是我认为把“默认捕获模式”称为“隐式捕获模式”更好,因为作者所指的“默认捕获模式”是指在捕获语句中只出现等号或者引用符号(即“[=]”或“[&a...
2019-02-28 11:36:49 2803
转载 boost::function和boost::bind
http://www.xumenger.com/cpp-boost-bind-function-20180612/boost::functionboost::function是一个函数包装器,也即一个函数模板,可以用来代替拥有相同返回类型,相同参数类型,以及相同参数个数的各个不同的函数#include<boost/function.hpp>#include<ios...
2019-02-28 11:05:11 4833
原创 Nginx中if语句里的AND,OR多重判断
最近遇到Nginx钟多条件判断,网上查了查资料,这里记录一下。一、if语句中的判断条件(nginx)1、正则表达式匹配:==:等值比较;~:与指定正则表达式模式匹配时返回“真”,判断匹配与否时区分字符大小写;~*:与指定正则表达式模式匹配时返回“真”,判断匹配与否时不区分字符大小写;!~:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时区分字符大小写;!~*:与指...
2019-02-21 15:52:55 13107
原创 C++11 find和find_if的用法
回顾学习find和find_if, 网上查了一下资料,这里记录一下。 STL的find,find_if函数提供了一种对数组、STL容器进行查找的方法。使用该函数,需 #include <algorithm>我们查找一个list中的数据,通常用find(),例如:1、findusing namespace std;int main(){ ...
2019-02-19 15:09:35 50361 6
转载 boost::lexical_cast 的使用
1,字符串 到 数值类型的转换2,数值 到 字符串的转换3,异常处理情况4,boost::lexical_cast 的原型:template<typename Target, typename Source> Target lexical_cast(Source arg);lexical_cast 是依赖于字符串流 std::stringstream ...
2019-02-18 17:37:52 957
转载 C++学习 boost::optional详解
最近接触到boost::optional,网上查了查,这里学习记录一下!optional: optional库使用"容器"语义,包装了"可能产生无效值"的对象,实现了"未初始化"的概念.#include <boost/optional.hpp>using namespace boost;"无意义"的值: 函数并不总能返回有效的返回值,很多时候函...
2019-02-18 15:46:15 15717 1
转载 C++的RVO返回值优化(Return Value Optimization)
最近打算优化新项目的一个函数返回方式,最后发现有一个“C++ RVO”优化,网上查了查资料,自己学习了,在这里记录一下。前言 大家都知道“过早的优化是万恶之源”这句话,然而我相信其中的大多数人都不知道自己是不是在做过早的优化。我也无法准确的定义什么叫做“过早的优化”,但我相信这“过早的优化”要么是得不偿失的,要么干脆是有害无利的。今天我就想举个我认为是“过早的优化”的...
2019-02-18 15:16:17 1567
转载 supervisord安装使用
官方网站: http://supervisord.org/ supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息,通过...
2019-02-13 13:38:37 540
转载 linux xz压缩解压
1. 解压 xz 格式文件 方法一:需要用到两步命令: 首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar, 其次用 tar 命令将 linux-3.12.tar 完全解压。xz -d linux-3.12.tar.xztar -xf linux-3.12.tar方法二(推荐)tar -Jx...
2019-02-12 09:27:48 9670
转载 c++11:tuple元组详解
c++11中的tuple(元组)。tuple看似简单,其实它是简约而不简单,可以说它是c++11中一个既简单又复杂的东东,关于它简单的一面是它很容易使用,复杂的一面是它内部隐藏了太多细节,要揭开它神秘的面纱时又比较困难。 tuple是一个固定大小的不同类型值的集合,是泛化的std::pair。和c#中的tuple类似,但是比c#中的tuple强大得多。我们也可以把他当做一个通用...
2019-02-02 15:53:29 6620
原创 C++11:右值引用、move, 以及使用emplace_back代替push_back
最近在写一段代码的时候,突然很好奇C++11中对push_back有没有什么改进以增加效率,上网搜了一些资料,发现果然新增了emplace_back方法,比push_back的效率要高很多。1、右值引用C++11引入了右值引用,用&&表示右值引用,如int &&a = add(1,2)。先了解下什么是左值和右值,简单的说,下面的表达式:...
2019-02-02 10:33:57 8931 7
转载 【Boost】boost库asio详解1——strand与io_service区别
namespace{ // strand提供串行执行, 能够保证线程安全, 同时被post或dispatch的方法, 不会被并发的执行. // io_service不能保证线程安全 boost::asio::io_service m_service; boost::asio::strand m_strand(m_service); boost::...
2019-02-01 14:57:12 2370 1
转载 mem_fun_t/ptr_fun等用法
1、mem_fun_t1-用于遍历调用多态的虚函数,容器元素是指针 2-const_mem_fun:用于const的成员函数,用法类似std::vector<B*> V;V.push_back(new D1);V.push_back(new D2);V.push_back(new D2);V.push_back(new D1); std::for...
2019-02-01 14:44:20 728
转载 for_each示例
void myfun1(int& i){ std::cout << i << " ";} void myfun2(int i, const char* prefix){ std::cout << prefix << i << std::endl;} struct mystruct1 { ..
2019-02-01 13:57:27 276
转载 main函数执行前、后再执行的代码
一、main结束 不代表整个进程结束 (1)全局对象的构造函数会在main 函数之前执行, 全局对象的析构函数会在main函数之后执行; 用atexit注册的函数也会在main之后执行。 (2)一些全局变量、对象和静态变量、对象的空间分配和赋初值就是在执行main函数之前,而main函数执行完后,还要去执行一些诸如释放空间、释放资源使用权等操作 ...
2019-02-01 13:49:06 1336
转载 C++修改入口函数名Main的方法
方法1: 通用// 通过下面这句话将入口函数改成fn.#pragma comment(linker, "/entry:fn")#include <iostream> int fn(void){ std::cout << "Hello world!" << std::endl; return 0;}方法2:VS:项目"属...
2019-02-01 13:40:21 3621 1
转载 C++11:带来的随机数生成器
C++11带来诸多特性,random就是其一.1. random_device 标准库提供了一个非确定性随机数生成设备.在Linux的实现中,是读取/dev/urandom设备;Windows的实现居然是用rand_s,在这里强烈谴责一下. random_device提供()操作符,用来返回一个min()到max()之间的一个数字.如果是Linux(Unix Like或者Unix)...
2019-02-01 09:51:23 1504
linux 定时发送邮件 应用sendmail技术
2010-04-25
中文分词算法介绍、分类详解
2010-04-25
Cluence搜索引擎源码
2009-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人