摘要:首先考虑用C实现类 肯定是要使用struct的,类的数据成员放在struct里面; 而类有构造函数、析构函数,这两个函数必须在struct外面,构造函数要分配struct空间并初始化struct成员,且返回一个指向struct的指针,析构函数要释放这些动态分配的空间; 成员函数如何实现呢?想想我们在 阅读全文
基本数据结构与算法问题
2016-09-19 17:00 by shuaihanhungry, 218 阅读, 0 推荐, 收藏, 编辑
摘要:链表 输入一个链表的头结点,从尾到头反过来打印出每个结点的值。 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)的时间删除该结点。 输入一个链表,输出该链表中倒数第k个节点。 求链表的中间结点。 给出两个单向链表的头指针pHead1和pHead2,判断这两个链表是否相交。假设两个链表均不带 阅读全文
UNIX网络编程中的需要注意的问题
2016-09-17 18:50 by shuaihanhungry, 472 阅读, 0 推荐, 收藏, 编辑
摘要:字节流套接字上调用read或write,输入或输出的字节数可能比请求的数量少,这个现象的原因在于内核中用于套接字的缓冲区可能已经达到了极限。此时所需要的是调用者再次调用read或write函数。这个现象在read()一个字节流套接字时很常见,但是在write()一个字节流套接字时只能在该套接字为非阻 阅读全文
C++中定义使用受限的类
2016-09-14 21:38 by shuaihanhungry, 325 阅读, 0 推荐, 收藏, 编辑
摘要:1、只能在堆上使用的类 栈上对象通过自动调用析构函数释放空间,将该类的析构函数定义为private就可以阻止其被自动调用,从而阻止在栈上使用该类的对象,为了避免资源泄漏问题,在堆上使用该类的对象时我们必须手动调用其析构函数。代码如下。 include using namespace std; cla 阅读全文
WebSocket协议再认识
2016-09-14 17:38 by shuaihanhungry, 1024 阅读, 0 推荐, 收藏, 编辑
摘要:WebSocket出现之前 在线聊天室、在线客服系统、评论系统、WebIM等这些应用有一个共同点,就是用户不需要去刷新浏览器就能够从服务器获得最新的数据,这就用到了推送技术。 WebSocket出现之前,实现推送一般有两种方式,polling与comet。 1、polling是在特定的的时间间隔(如 阅读全文
性能优化基础
2016-09-14 01:20 by shuaihanhungry, 235 阅读, 0 推荐, 收藏, 编辑
摘要:常见性能瓶颈 吞吐量到上限时系统负载未到阈值: 一般是被测服务分配的系统资源过少导致的。测试过程中如果发现此类情况,可以从ulimit、系统开启的线程数、分配的内存等维度定位问题原因 CPU的us和sy不高,但wa很高: 如果被测服务是磁盘IO密集型型服务,wa高属于正常现象。但如果不是此类服务,最 阅读全文
Netty学习笔记
2016-09-05 12:59 by shuaihanhungry, 4601 阅读, 1 推荐, 收藏, 编辑
摘要:一些类与方法说明 1)ByteBuf ByteBuf的API说明: Creation of a buffer It is recommended to create a new buffer using the helper methods in Unpooled rather than calli 阅读全文
内存碎片
2016-09-04 10:47 by shuaihanhungry, 317 阅读, 0 推荐, 收藏, 编辑
摘要:内存碎片指的是不能够被操作系统利用的内存空间。 内存碎片分为内部碎片和外部碎片。 内部碎片是指已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间。外部碎片是指还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内存空间的新进程的内存空闲区域。 内部碎片是已经被分配出去的的内存空 阅读全文
《大规模分布式存储系统》笔记——单机存储系统、分布式系统
2016-09-02 10:31 by shuaihanhungry, 859 阅读, 0 推荐, 收藏, 编辑
摘要:概述 数据大致有3类:非结构化数据,结构化数据,半结构化数据。 不同的分布式存储系统适合处理不同类型的数据。 分布式存储系统分为四类:分布式文件系统(存储关非结构化数据),分布式键值系统(存储关系较为简单的半结构化数据),分布式表格系统(存储关系较为复杂的半结构化数据),分布式数据库(存储结构化数据 阅读全文