Linux下测试堆的大小,管道的大小

测试堆的大小

  1 #include <unistd.h>
  2 #include <stdio.h>
  3 #include <string.h>
  4 #include <stdlib.h>
  5 
  6 int main()
  7 {
  8     int i = 1;
  9     for(; ; ++i)
 10     {
 11         int *p = (int *)malloc(1024*1024);
 12         if(p != NULL)
 13         {
 14             printf("%d\n",i);
 15         }
 16         else
 17         {
 18             break;
 19         }
 20     }
 21     return 0;
 22 }

结果为:3055,所以为3055个1M,说明一个进程最多可申请的堆大小大约为2.98G

测试管道的大小

1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <unistd.h>
  4 #include <string.h>
  5 
  6 
  7 
  8 
  9 int main()
 10 {
 11     int pipefd[2];
 12     char buf[4096] = {0};
 13     pipe(pipefd);
 14     int i;
 15     for(i = 0; i<sizeof(buf); ++i)
 16     {
 17         buf[i] = 'a';
 18     }
 19 
 20     int j;
 21     for(j = 0; ; ++j)
 22     {
 23         write(pipefd[1],buf,sizeof(buf));
 24         printf("%d\n",j);
 25     }
 26 
 27     close(pipefd[0]);
 28     close(pipefd[1]);
 29     return 0;
 30 }

运行结果为16,所以,管道的大小为64K;

查看栈的大小,ulimit -s//查看进程默认栈的大小;
可以通过ulimit -s +大小 改变栈的大小;
扩展:ulimit -c//查看core文件的大小;
ulimit -a //查看当前用户进程的各种限制;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值