- 博客(18)
- 收藏
- 关注
转载 python文本以及二进制数据
对于从python2.7过来的人,对python3的感受就是python3对文本以及二进制数据做了比较清晰的区分。文本总是Unicode,由str类型进行表示,二进制数据使用bytes进行表示,不会将str与bytes偷偷的混在一起,使得两者的区别更加明显。在python2中会明显发现不能将str与bytes拼接在一起,也不能在bytes中查找字符。然而在实际应用中经常需要对两者进行转换操作以便后...
2018-03-31 13:50:51 1962
转载 GIL影响
Python的GIL是什么鬼,多线程性能究竟如前言:博主在刚接触Python的时候时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号。本着不光要知其然,还要知其所以然的研究态度,博主搜集了各方面的资料,花了一周内几个小时的闲暇时间深入理解了下GIL,并归纳成此文,也希望读者能通过次本文更好且客观的理解GIL。文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作...
2018-03-28 18:31:53 730
转载 stringstream使用
使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了<stdio.h>风格的转换,也许你首先会问:为什么要花额外的精力来学习基于<sstream>的类型...
2018-03-20 16:00:20 143
转载 服务器最大并发连接数
关于TCP服务器最大并发连接数有一种误解就是“因为端口号上限为65535,所以TCP服务器理论上的可承载的最大并发连接数也是65535”。先说结论:对于TCP服务端进程来说,他可以同时连接的客户端数量并不受限于可用端口号。并发连接数受限于linux可打开文件数,这个数是可以配置的,可以非常大,所以实际上受限于系统性能。从理论上说,端口号的作用是在网络连接中标识应用层的进程,服务端一般使用众所周知的...
2018-03-13 20:18:57 11412 3
转载 curl库
一、LibCurl基本编程框架二、一些基本的函数三、curl_easy_setopt函数部分选项介绍四、curl_easy_perform 函数说明(error 状态码)五、libcurl使用的HTTP消息头六、获取http应答头信息七、多线程问题八、什么时候libcurl无法正常工作九、关于密码十、HTTP验证十一、代码示例 1.基本的http GET/POST操作...
2018-03-13 17:11:00 706
转载 POST与GET的区别
首先介绍HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。 工作原理: 由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。 连接 HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求, 请求 服务器(向客户端)发回...
2018-03-13 11:33:31 266
转载 event_base结构体
Libevent在实现线程、内存分配、日志时,都是使用了函数指针和全局变量。在实现多路IO接口上时,Libevent也采用了这种方式,不过还是有点差别的。相关结构体: 现在来看一下event_base结构体,下面代码只列出了本文要讲的内容:[cpp] view plain copy//event-internal.h文件 struct event_base { ...
2018-03-09 15:55:13 355
转载 evbuffer结构与基本操作
Libevent将缓冲数据都存放到buffer中。通过一个个的evbuffer_chain连成的链表可以存放很多的缓冲数据。 这是一个很常见的链表形式。但Libevent有一个很独特的地方,就是那个evbuffer_chain结构体。 首先,该结构体有misalign成员。该成员表示错开不用的buffer空间。也就是说buffer中真正的数据是从buffer + mi...
2018-03-08 17:00:42 620
转载 getopts
1. 命令的格式getopt命令可以接受一系列任意形式的命令行选项和参数,并自动将它们转换成适当的格式。格式如下:getopt optstring parameters optstring是关键所在,它定义命令行有效的选项字母,还定义了那些选项字母需要参数值 getopt命令有一个更高级的版本叫做getoptsgetopt 工作例子:#getopt ab:cd -...
2018-03-07 21:03:43 166
转载 关系型与非关系型数据库
NoSql数据库四大分类:键值(Key-Value)存储数据库这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB....
2018-03-05 21:10:14 473
转载 TIME_WAIT状态
TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT。服务器在处理客户端请求的时候,如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWAIT状态过多的问题。如果你的服务器设计为被动关闭,那么你首先要关注的是CLOSE_WAIT。 ...
2018-03-03 20:24:11 264
转载 EWOULDBLOCK网络可调参数
send返回值http://blog.csdn.net/anghlq/article/details/5990513 在Unix系统下,如果send 、 recv 、 write在等待协议传送数据时 , socket 被 shutdown,调用send的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。 此种情况 应用就很难查 出 处理进程为什么退出。...
2018-03-03 18:22:37 2541
转载 gettimeofday/clock_gettime
我们写程序的时候经常会使用计时函数,比如RPC中计算超时时间,日志中打印当前时间,性能profile中计算某个函数的执行时间等。在使用时间函数的时候,我们一般默认认为时间函数本身的性能是很高的,对主逻辑的影响可以忽略不计。虽然绝大部分情况下这个假设都没问题,但是了解更多细节能够增加我们对问题的把控力,利于系统的设计和问题的调查。首先来比较gettimeofday/clock_gettime的性能。...
2018-03-02 11:41:08 3848
转载 sar命令介绍
一:命令介绍:参考资料:http://linux.die.net/man/1/sar sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装,本文...
2018-03-02 10:51:57 2325
转载 内存、swap相关查看
内存centos 6.5 内存查看 最近有个月经问题,老有人问为何开机后,还没有其他服务,mem就被用完了?是不是内存泄露?是否要重启服务?只能说不要看现象,要看本质才能找到问题的根源。往往给出这样的结果,怀疑内存用了90%:Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffersSwap: 2650...
2018-03-01 21:34:57 1271
转载 strace命令
简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strace cat /dev/nul...
2018-03-01 18:12:24 119
转载 boost单元测试
简介: 毫无疑问,每个软件产品都需要回归测试套件。在过去,单元测试框架是由测试团队专门开发的。这不但导致测试套件难以维护,而且监视程序执行时间/内存性能等操作无法跨操作系统移植。考虑到这些问题,本系列介绍使用开放源码软件创建高级回归测试框架的方法。本文是 本系列 的第 1 部分,介绍用于 C/C++ 产品的 Boost 单元测试框架。查看本系列更多内容标记本文!发布日期: 2009 年 12 月 ...
2018-03-01 16:32:20 235
转载 ssh进不去问题
排查路径:1、一开始怀疑可能是io阻塞导致,于是使用iostat -xdm 1 100,查看 io状况,发现io不高 2、于是使用top,查看系统负载情况。发现系统负载很高,但是cpu使用率比较低,同时wa也不多,难道是正在执行的进程数很多。3、另起一个窗口 执行 vmstat 1 10 查看系统状态,没有发现异常,于是怀疑是不是进程D状态导致。4、于是free -g 查看内存使用情况,发现fre...
2018-03-01 16:08:43 2203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人