在一台内存为2G的机器上,malloc(20G) 会怎样?如果是new(20G) 会怎样?

  • 首先,malloc和new申请的都是虚拟内存
  • malloc函数的实质,有一个将可用的内存块连接起来的链表,调用malloc的时候,会沿着链表找一个满足用户需求的内存块。然后将这个内存块一分为二,一块和用户所申请的内存大小相同,另一块返回到链表中。如果用户申请一个大的内存块,空闲链表上可能没有可以满足用户要求的片段,这个时候malloc函数就会请求延时,对链表上的内存进行整理。如果还是不可以的话, 内存申请失败,返回NULL
  • new的话,底层实现还是malloc,在分配失败的时候会抛出bad_alloc类型的异常

原文地址:https://www.cnblogs.com/letlifestop/p/11965473.html

时间: 2024-10-14 00:53:54

在一台内存为2G的机器上,malloc(20G) 会怎样?如果是new(20G) 会怎样?的相关文章

两台CentOS6.5 在不同机器上互联

准备工作 1.安装vmware及虚拟机centos6.5: 2.将安装好的centos6.5复制一份,在另一台机器上拷贝. 要进行不同机器上虚拟机的互相通信,需要用桥接模式进行互联.如下图,对vmware进行设置: VMnet0对应于桥接模式,VMnet对应NAT模式. 对于拷贝过来的虚拟机,首先重新设定mac地址,如图在拷贝的虚拟机出单击右键选择设置,重启虚拟机. 以上步骤完成后,如果需要配置静态ip,则使用 vim /etc/sysconfig/network-scripts/ifcfg-e

如何确定Hadoop守护进程分别会在哪台机器上运行

经过一段时间的配置,Hadoop环境总算运行起来了,但是呢,为何主节点就没有跑tasktracker和datanode进程,slave节点也没有跑secondary进程,Hadoop是如何控制的呢? 经过看权威指南(267页)和跟群里同学讨论,还有自己测试,最终确定: tasktracker和datanode这两个守护进程 —— 只会在conf/slaves文件里指定的那些节点上运行 secondarynamenode 这个守护进程 —— 只会在conf/masters文件里指定的那个节点上运行

如何在一台机器上配置多个git的rsa

如何在一台机器上配置多个git的rsa 问题的提出 很多时候,我们一台机器上要使用多个git库,比如 github, csdn 以及 自己公司的.那么 rsa就要有多份.那么该如何让这些共同存在呢? 原理就是:建立多个不同的rsa 然后 在ssh config中分别不同的配置. 具体步骤 1 建立rsa ssh-keygen -t rsa -C "你的邮箱地址" 执行完这条命令之后, 会弹出如下提示: Enter file in which to save the key (/User

linux机器上部署多台Tomcat

在Linux机器上部署多台Tomcat, 我部署的是Tomcat8,只需要一步,即避免端口号冲突. 在解压后的tomcat目录下,修改conf下server.xml. 修改shutdown端口: <Server port="8050" shutdown="SHUTDOWN">//修改为没有被占用的端口 修改connector端口: <Connector port="9999" protocol="HTTP/1.1&qu

在一台机器上搭建多个redis实例

默认Redis程序安装在/usr/local/redis目录下: 配置文件:/usr/local/redis/redis.conf,该配置文件中配置的端口为默认端口:6379: Redis的启动命令路径:/usr/local/bin/redis-server. 可以指定端口启动多个Redis进程. #/usr/local/bin/redis-server --port 6380 &    #启动6380端口的redis实例. ====================以下每个进程对应一个配置文件(

用pf透明地将流量从一台机器转到另一台机器上的缘起及实现方式对比

下面是也是我在12580工作时发生的事情,重新记录并发出来.这种特殊需求很考 验PF的功底.在新旧系统并存,做重构的时候有时很需要这种救急的作法.一.缘起miscweb1(172.16.88.228)的系统近段时间经常死掉,没有查到最终原因,现在的 策略是将其中一个端口上的服务摘出来,以确认问题,所以新准备了另一台机器 (172.16.88.116),由于miscweb1上还有别的服务,所以不能通过切换域名到新机器的 方式进行测试,另外也不方便让所有调用待迁移服务的部门手工改程序调用新的机器,这

一台机器上运行多个ActiveMq

由于业务需要一台机器上运行多个ActiveMq,这里主要说一下有什么地方不重复: 1.brokerName名称不能重复 2.端口号不能重复uri = tcp://localhost:50509 3.kahadb路径不能重复 4.管理端口不能重复contextPort = 2019 jmxServiceUrl = service:jmx:rmi:///jndi/rmi://localhost:2019/jmxrmi

使用zabbix监控位于两台不同的机器上的文件是否一致

生产上有一需求,要把某个文件同步到另一台备机上,备机启动程序的时候需要引用这个文件,以便能够实现failover.文件同步的方法这里不言,这里主要讨论怎么通过zabbix平台实现对两个位于不同机器上的文件是否一致进行监控,若出现不一致的情况立即告警,需要人为干预. 在网上也搜索了好多帖子,差不多都使用了脚本来实现,感觉都不适合自己.于是曲曲折折走了一段弯路,最开始打算用Python脚本实现的,脚本都准备好了也测试过了.后来看到了calculate item这种方式,只是单纯的通过zabbix就能

在同一台机器上启动多个tomcat服务

一台机器上启动多个tomcat服务应用,能够让我们更好的测试下自己的分布式应用,下面简单介绍下如何在一台机器上开启多个tomcat应用,其实会弄两个,之后的多个都是一样的了 找到电脑上的tomcat安装目录,复制一份,出现两份tomcat,为了区别给复制的一份起一个特别的名称apache-tomcat-6.0.35-8090 进入apache-tomcat-6.0.35-8090目录中,进入conf目录下找到server.xml需要进行多个地方修改 conf目录下修改sever.xml 主要修改