
linux
tongdajiu
这个作者很懒,什么都没留下…
展开
-
linux 下eclipse编译release版本的so文件
最近用eclipse编译了release版本的so文件,发现尽然程序运行时竟然导出函数不对。但是debug版本的文件又是正确的。用了半个小时问题得到解决。要设置一下工程配置。问题得到解决。原创 2012-10-18 09:41:07 · 767 阅读 · 0 评论 -
最近开发的心得1
最近进行项目开发,出现了几个问题:1.在调用mysql_ping()返回失败,错误码为"2006,MySQL server has gone away",发现mysql超时断开连接,但是mysql_ping()函数的作用就是重连mysql,为什么出现这种情况了,网上查看了一下资料,才发现mysql_ping()重连必须调用mysql_options()设置,代码如下:char cValue原创 2016-08-09 22:26:37 · 419 阅读 · 0 评论 -
服务器压力测试心得
最近完成了一个服务器框架, 于是测试的他的qps,发现了一个奇怪的问题,测试出来qps只有3w/s,与前面说的10w/s,有很大的差距。使用trace命令打印出glibc函数调用信息,发现了大部分的时间程序处于锁等待状态,我开始怀疑认为是内部使用锁占用太多时间。于是乎改为无锁队列。(关于无锁队列已经记录).修改完毕后,发现了如下几个问题:1:业务处理线程消耗大量的CPU时间,因为采用了轮询,一原创 2016-07-07 17:46:04 · 11555 阅读 · 1 评论 -
关于无锁队列的使用
前段时间无意中想到了无锁队列,于是实现之,实现代码如下:templatebool CUnlockQue::Push(T0 &tValue, int nWaitTime){ struct timespec TimeWait; //已经有足够多的push操作向列队不同位置写入数据 while (0 >= AtomDec(m_nAbleWriteCount, 1)) { AtomAdd原创 2016-06-11 22:49:28 · 1438 阅读 · 1 评论 -
2016三月份总结
最近写了服务器框架,但是感觉有些问题,以下为补充。1.关于业务处理线程这一块,需要补充按hash分配,按权重分配。2.是否应该屏蔽业务层网络连接,只是简简单单的收发包。3.epoll类处理是否需要使用SessionId防止粘包。综上所述,需要修改。hadoop可能暂时需要停一下,以后再捡起来。原创 2016-04-12 15:27:06 · 676 阅读 · 0 评论 -
关于linux中so链接a
这段由于工作需要,做成链接库文件给别人调用,但是只想提供一个so文件,于是实现在so文件中链接.a文件,写了一个测试程序,编译脚本如下:g++ -fPIC hello.cpp -c -o hello.oar rcs libhello.a hello.og++ -fPIC -shared -o libhello_s.so hello_s.cpp -L. -lhellog++ -o原创 2016-03-01 12:55:34 · 2217 阅读 · 0 评论 -
编译libgd
最近由于项目需要jpg进行压缩,查了相关资料,发现php的代码中使用了压缩图片使用libgd库,于是下载进行编译,因为历史问题,需要编译成32位的库,这个可就把我搞死了,他的源码中有cmake和automake方式,直接编译成的属于64位平台。于是我在cmake命令上面直接加上了如下命令:SET(CMAKE_CXX_FLAGS "-g -m32 -w -std=gnu++98"编译的时原创 2015-10-20 11:26:57 · 3245 阅读 · 0 评论 -
TCP协议以及套接字方面的总结(1)
最近写了一个测试程序,对于TCP方面协议以及套接字接口方面的调用有了更进一步的认识。特此记录下来。对于监听套接字,它会有一个监听队列。调用listen函数设置,众所周知,TCP连接需要三次握手,握手成功后,会添加到这个队列中,所以我们要通过accpet函数及时取出来,如果队列处于满状态,这个时候在调用connect函数,服务端会处于等待状态,连接超时。所以我得测试程序并发1000个连接,会出现原创 2015-09-21 09:30:34 · 879 阅读 · 0 评论 -
关于内存对齐
关于数据内存对齐,网上有很多数据。以前我漏掉了一部分,现在我记录一下:结构体中偏移:struct Test{int a;short b;char sz[2];};struct Test2{short b;int a;char sz[2];};sizeof(Test1) = 8, sizeof(Test2)=12;默认情况下Test对齐的力原创 2015-03-14 08:24:00 · 319 阅读 · 0 评论 -
linux中进程之间通信
关于linux进程通信有很多种类实现,比如管道,队列,共享内存。说一下自己的体会原创 2014-12-29 23:58:55 · 327 阅读 · 0 评论 -
关于linux中socket阻塞与非阻塞
关于linux中socket阻塞与非阻塞,网上有很多。这里我只说说我个人的体会:INT send(...INT nSendSize)函数:阻塞:如果内核缓冲区有足够大的缓冲区(>= nSendSize),直接数据拷贝,如果非阻塞:如果缓冲区不够( recv ()这里省略原创 2014-11-26 07:04:17 · 972 阅读 · 0 评论 -
关于socket
socket分为阻塞和非阻塞,一般原创 2014-11-18 20:44:12 · 226 阅读 · 0 评论 -
简单的内存池
对于服务器开发,经常需要数据靠原创 2014-11-13 05:43:21 · 367 阅读 · 0 评论 -
关于linux中消息队列的使用
以前对于linux消息队列有过大概的了解,在《uinx高级系统编程》这本书里面提到过。但是具体使用不是很了解,最近再熟悉appserver和tws的框架,这里面使用了linux的消息队列,于是乎进行了系统的了解。消息队列如下int msgget(key_t key, int msgflg);int msgctl(int msqid, int cmd, struct msqid_ds *buf原创 2017-05-12 11:43:50 · 3656 阅读 · 0 评论