该项目是作者学习数据库技术时整理的项目,非关系型数据库Redis的核心存储引擎使用的数据结构就是跳表,该项目采用C++语言基于跳表结构设计了一个轻量级键值型存储引擎,支持插入、查询、删除、显示、导出、重加载6种基本操作。为了测试引擎效率,作者开发了一个使用和web bench相似技术的压力测试工具Stress Bench。在随机读写情况下,该引擎每秒在多个并发线程下的累计执行成功...
该项目是作者在学习Linux服务端编程时整理的项目,Web简易服务器是一款用C++实现的基于Linux的轻量级高性能Web服务器,经过web bench工具的压力测试,可以实现上万的QPS (Query Per Second,每秒查询率)。 技术栈 基于多进程网络通信和匿名管道技术的Web bench测试工具; 基于互斥锁和条件变量等多线程同步技术实现的线程池模块,...
[TOC] 本文总结作者学习的Web服务器项目(WebServer),分析其中的网络通信模块的作用及相关知识点。 一、socket的作用 TCP/IP协议是在操作系统的内核中实现的,因此操作系统需要实现一组系统调用,使得应用程序能够在用户空间访问这些协议提供的服务。实现这组系统调用的API(Application Programming Interface,应用程...
[TOC] 本文总结作者学习的Web服务器项目(WebServer),分析其中的主要模块的作用及相关知识点。一个WebServer是一个运行在linux系统上的C++编码的服务器程序,其需要处理来自浏览器程序(客户端)的各种HTTP请求,并对其请求作出HTTP响应。 从上述图中可以看出其中共有7个模块:日志系统模块、监听套接字模块、IO复用模型epoll模块、线程池模块、...
[TOC] 单例模式作为最常用的设计模式之一,用来保证一个类仅有一个实例化对象,并提供一个访问它的全局访问点,该实例被所有程序模块共享。 1、单例模式的实现思路 单例模式单例模式的实现思路一般有如下两步: (1)私有化类的构造函数,以防止外界创建单例类的对象; (2)使用类的私有静态指针变量指向类的唯一实例,并用一个公有静态方法获取该实例。 根据...
inline函数在class内定义, 构造函数 class complex{ public: //构造函数名称和类的名称相同 //构造函数不需要返回值(因为是用来创建对象的) complex(double r=0,double i=0) :re(r),im(i)//初值列,初始列 { } //构造函数也可以这样,效率差些,因为上面...
[TOC] 本文总结作者学习的Web服务器项目(WebServer),分析其中的主要模块的作用及相关知识点。一个WebServer是一个运行在linux系统上的C++编码的服务器程序,其需要处理来自浏览器程序(客户端)的各种HTTP请求,并对其请求作出HTTP响应。 本项目的主要流程如下: 从上述图中可以看出其中共有7个模块:日志系统模块、监听套接字模块、...
[TOC] 华为机试题库共103道题目,其中入门级5道,简单级46道,中等级36道,较难级13道,困难级3道。 相关的API //将一个字符串中的字符全部转换为小写: for (int i = 0; i < str.length(); i++) { if ('A' <= str[i] && str[i] <= 'Z') str[...
[TOC] 华为机试题库共103道题目,其中入门级5道,简单级46道,中等级36道,较难级13道,困难级3道。 相关的API //将一个字符串中的字符全部转换为小写: for (int i = 0; i < str.length(); i++) { if ('A' <= str[i] && str[i] <= 'Z') str[...