当前位置: 技术问答>linux和unix
为什么我的内存不断增加,而且是8k,8k,或者是4k的增加?(内详)
来源: 互联网 发布时间:2015-05-24
本文导语: 我在linux下写了一个并发服务器程序,当我做压力测试的时候发现过一段时间之后内存就不断的增加.而且是8k,或者4k的增加.可是我的程序里面明显没有内存泄漏啊. 顺便,我的服务器希望能设计的可以承受很大的并发访...
我在linux下写了一个并发服务器程序,当我做压力测试的时候发现过一段时间之后内存就不断的增加.而且是8k,或者4k的增加.可是我的程序里面明显没有内存泄漏啊.
顺便,我的服务器希望能设计的可以承受很大的并发访问量,请高手帮我看看还需要做哪些改进.
请高手指点.附上我的代码:由于太长了,其中MySend,MyRecieve函数定义没有贴出来.
#include ...
int port=8000;
void *task(void *arg);
int main()
{
struct sockaddr_in sin;
struct sockaddr_in pin;
int sock_descriptor;
int temp_sock_descriptor;
int address_size;
int len;
pthread_mutex_init(&mylock,NULL);
pthread_t thread;
sock_descriptor=socket(AF_INET,SOCK_STREAM,0);
if(sock_descriptor==-1)
{
perror("call to socket");
exit(1);
}
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_port=htons(port);
if(bind(sock_descriptor,(struct sockaddr *)&sin,sizeof(sin))==-1)
{
perror("call to bind");
exit(-1);
}
if(listen(sock_descriptor,20)==-1)
{
perror("call to listen");
exit(1);
}
cout
顺便,我的服务器希望能设计的可以承受很大的并发访问量,请高手帮我看看还需要做哪些改进.
请高手指点.附上我的代码:由于太长了,其中MySend,MyRecieve函数定义没有贴出来.
#include ...
int port=8000;
void *task(void *arg);
int main()
{
struct sockaddr_in sin;
struct sockaddr_in pin;
int sock_descriptor;
int temp_sock_descriptor;
int address_size;
int len;
pthread_mutex_init(&mylock,NULL);
pthread_t thread;
sock_descriptor=socket(AF_INET,SOCK_STREAM,0);
if(sock_descriptor==-1)
{
perror("call to socket");
exit(1);
}
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_port=htons(port);
if(bind(sock_descriptor,(struct sockaddr *)&sin,sizeof(sin))==-1)
{
perror("call to bind");
exit(-1);
}
if(listen(sock_descriptor,20)==-1)
{
perror("call to listen");
exit(1);
}
cout