- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 C++memset内存陷阱
近日接到任务,公司一套UNIX下的C++程序每隔一段时间会出现僵死,处理变慢,重复处理数据的情况。这种情况延续了2年之久,每次出问题都是由运维人员进行手动重启处理,由于涉及到电信用户的计费,该情况无法复现。该程序在用户态24小时运行,整体架构使用C++的面向对象特性,使用多态实现多个子类各自独立的业务处理,采用多进程单线程的模式。近日刚好碰到一次程序处理变慢并重复处理数据的情况,对日志进行了详...
2019-01-15 03:19:36 857
转载 epoll详解
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,
2016-04-26 12:06:24 338
转载 select函数总结
阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。使用Select就可以完成非阻塞non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高。
2016-04-26 00:13:43 221
原创 xml,json,http,socket的区别
1)XML 和JSON是两种完全不同的数据表达方式。他们分别采用完全不同格式将原始数据转换成XML或者JOSN格式数据;然后再将XML或JOAN格式的数据还原为原始数据2)Socket是用来编写TCP/IP或UDP/IP通信程序的;HTTP是使用TCP/IP的“应用层协议”,HTTP协议利用(借助于)TCP/IP 实现传输。3)XML和JSON都可以借助HTTP进行传输===
2016-01-11 16:20:33 614
转载 JSON和XML的比较
JSON和XML的比较 ◆可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。 ◆可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,而JSON却不能。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。 ◆编码难度 XML有丰富的编码工具,
2016-01-11 14:47:54 237
转载 STL容器介绍与效率比较
1、vector变长一维数组,连续存放的内存块,有保留内存,堆中分配内存;支持[]操作,高效率的随机访问;在最后增加元素时,一般不需要分配内存空间,速度快;在中间或开始操作元素时要进行内存拷贝效率低;vector高效的原因在于配置了比其所容纳的元素更多的内存,内存重新配置会花很多时间;注:需要高效的随即存取,而不在乎插入和删除使用vector。
2016-01-11 14:36:25 363
原创 C++memset内存陷阱
今日接到任务,公司一套UNIX下的C++程序每隔一段时间会出现僵死,处理变慢,重复处理数据的情况。这种情况延续了2年之久,每次出问题都是由运维人员进行手动重启处理,由于涉及到电信用户的计费,该情况无法复现,现在需要我来定位该困境。该程序在用户态24小时运行,整体架构使用C++的面向对象特性,由一个基类继承,使用多态实现多个子类各自独立的业务处理,采用多进程单线程的模式。近日刚好碰到一次程序处理
2016-01-06 23:21:40 95
原创 python笔记01--list,map使用
开始学习python语言的第三天,跟着廖雪峰老师的教程一步步学习,学到了高阶函数编程。前面的基础课程,从编译器使用开始,到基础部分的变量,判断,循环,数据结构,到现在的高阶函数编程,决定做些习题练练手。题目为将不规则的英文名变为首字母大写其余小写的规范字符串,题目非常简单,但运用到了python语言的基础部分。首先想到的是用循环逐个改变字符的大小写,这里用到自带函数upper()和lower(
2015-12-29 22:26:33 3110
原创 C++ note--常见排序算法
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。//冒泡排序(O(n2))void maopao(int *list,int count){ int i, j, temp; for (i = 0;i < count;i++) { f
2015-12-20 14:18:01 233
原创 C++ note--二分法的实现
int BinarySearch(int array[],int t){ int low, high, mid; low = 0; high = array.length; while (low <= high) { mid = (low + high) / 2; if (array[mid] < t) low = mid + 1; else if (arr
2015-12-20 01:52:14 214
原创 c++ note--二叉树的实现
二叉树是一种非线性的数据结构。//定义二叉树struct Binary_tree{ char m_data; //节点存放的数据 Binary_tree *m_left; //左子树节点指针 Binary_tree *m_right; //右子树节点指针};//二叉树初始化Binary_tree * My_Init(char data){ Binary_tr
2015-12-20 01:27:08 202
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人