Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。我不会详细...
分类:
其他好文 时间:
2014-12-31 20:07:29
阅读次数:
255
程序运行时,我们定义的局部变量一般都存放于栈内存中,这些局部变量既可以是基本数据类型的变量(基本数据类型的变量在栈中直接保存它的值),也可以是引用类型的变量(引用类型的变量在栈中保存的是它所指向的堆内存中对象的地址)。
堆内存中存放的就是引用类型变量的地址所指向的对象。...
分类:
编程语言 时间:
2014-12-31 01:04:57
阅读次数:
241
一、概述
Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。
二、热身
先看一个比较简单的Block例子:
int multiplier = 7;
int (^myBlock)(int) = ^(int num) {
retu...
分类:
其他好文 时间:
2014-12-30 20:47:31
阅读次数:
306
Windows内存管理
一 地址空间
1 地址空间范围
一个程序的最大寻址范围。对于Win32操作系统最大的寻址范围为2^32(0 – 0xFFFFFFFF)。此寻址范围由CPU决定。从某种角度来说,CPU的寻址范围越大,编程难度会降低。...
运行时 触发了virsual studio的assert断点。输出内容如下:HEAP[xx.exe]: Invalid Address specified to RtlValidateHeap( 00C80000, 00CACFFC )Windows 已在 xx.exe 中触发一个断点。其原因可能是...
分类:
其他好文 时间:
2014-12-20 18:12:35
阅读次数:
218
堆和栈这两个字我们已经接触多很多次,那么具体是什么存在栈中什么存在堆中呢?就拿JavaScript中的变量来说:
首先JavaScript中的变量分为基本类型和引用类型。
基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象。
1、基本类型
基本类型有Undef...
分类:
编程语言 时间:
2014-12-13 15:10:33
阅读次数:
579
1,设置Eclipse内存使用情况修改eclipse根目录下的eclipse.ini文件 -vmargs //虚拟机设置 -Xms40m //初始内存 -Xmx256m //最大内存-Xmn16m //最小内存 -XX:PermSize=128M //非堆内存 -XX:MaxPermSize=256...
分类:
系统相关 时间:
2014-12-04 17:09:23
阅读次数:
134
在查看内存泄露以及对内存问题中,要dump出当前内存堆存储快照,便于分析。有几种方法可以做,简介如下一、intellij IDEA 由于我用的是intellij IDEA,所以没有介绍Eclipse的配置,当然网上有很多种。1、run->E...
分类:
其他好文 时间:
2014-11-26 13:32:17
阅读次数:
255
VirtualVM是JDK6Update7之后推出的工具,有集合其它JDK工具的倾向,目前JDK7的版本已经支持绝大部分的监控功能,好像还不能像Jprofile和Youkit那样支持实时跟踪内存堆栈来定位内存泄露问题。对于远程应用的连接,VirtualVM提供两种方式:JMX和jstatd,下面介绍这两种连接的配置..
分类:
编程语言 时间:
2014-11-18 10:28:57
阅读次数:
352
在innodb中实现了自己的内存池系统和内存堆分配系统,在innodb的内存管理系统中,大致分为三个部分:基础的内存块分配管理、内存伙伴分配器和内存堆分配器。innodb定义和实现内存池的主要目的是提供内存的使用率和效率,防止内存碎片和内存分配跟踪和调试。我们先来看看他们的关系和结构。
以下是它的关系结构图:
上图中的:
ut_mem_block块是基础内存管理
Buddy all...
分类:
数据库 时间:
2014-11-10 21:56:42
阅读次数:
400