内存_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 内存 >>列表
本系列文章发表以来得到了很多朋友的关注,小鱼在这里谢谢大家对我的支持,我会继续努力的,最近更新慢了一点,因为我老婆流产了抽了很多时间来照顾她希望大家谅解,并在此预祝我老婆早日康复。上一篇,我们完整的分析了Director这个类,并提到了Director这个继承了Ref这个类,大致看了一下Ref这个类,是一个关于引用计数的类,从而我们可以推断Cocos2d-x用了一种引用计数的方式来管理内存对象,这一章我们刨根问底Cocos2d-x是如何实现内存管理及我们如何在实际项目开发中应用Cocos2d... 查看全文
不知道是第几次看thinkinginjava了。不是的翻翻总有新的收获。堆栈静态存储区域一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的... 查看全文
· Java内存溢出详解发布时间:2014-05-21
Java内存溢出详解一、常见的Java内存溢出有以下三种:1.java.lang.OutOfMemoryError:Javaheapspace----JVMHeap(堆)溢出JVM在启动的时候会自动设置JVMHeap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn-Xms-Xmx等选项可进行设置。Heap的大小是YoungGeneration和TenuredGeneraion之和。在JVM中如果98%的时间是用于GC... 查看全文
· java支持的最大内存发布时间:2014-05-21
一.jdk各个版本在不同操作系统中支持的最大内存是不一样的,但是可以通过以下方法来进行测试c:>java-Xmxxxxxm(g)-version其中xxxx为最大内存数值,m(g)是内存的计量单位,如果命令能够正确显示出jdk的版本等信息,说明当前jdk支持测试的最大内存数量,否则说明测试的内存超出了jdk支持的最大值,例如:c:\\documentsandsettings\\fengbaoxp>java-xmx1g-versionjavaversion\"1.6... 查看全文
· C#中字符串的内存分配与驻留池发布时间:2014-05-19
刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下:Strings1="Hello";Strings2="Hello";//s2和s1的实际值都是“Hello”boolsame=(object)s1==(object)s2;//这里比较s1、s2是否引用了同一个对象实例//所以不能写作boolsame=s1==s2... 查看全文
· Java的Finalizer引发的内存溢出发布时间:2014-05-18
本文介绍的是Java里一个内建的概念,Finalizer。你可能对它如数家珍,但也可能从未听闻过,这得看你有没有花时间完整地看过一遍java.lang.Object类了。在java.lang.Object里面就有一个finalize()的方法。这个方法的实现是空的,不过一旦实现了这个方法,就会触发JVM的内部行为,威力和危险并存。如果JVM发现某个类实现了finalize()方法的话,那么见证奇迹的时刻到了。我们先来创建一个实现了这个非凡的finalize()方法的类... 查看全文
首先需要说明的是这里说的内存分配,不包含现在热门的栈上分配等方式,只针对最基础的分析。在JVM的结构中,主要包含:方法区,堆,JAVA栈,本地方法栈,程序计数器。其中:方法区,堆为各线程共享的区域,JAVA栈,本地方法栈和程序计数器为线程私有。当类(接口)在经过编译为class文件后,再由类(接口)加载器加载到内存中,当前类(接口)中包含的信息,如:类(接口)的描述,类(接口)中的成员变量,方法等信息都会加载到方法区中,编译期间产生的“常量”和“对象字符串引用”都会加载到方法区的常量池... 查看全文
锁的释放-获取建立的happensbefore关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:classMonitorExample{inta=0;publicsynchronizedvoidwriter(){//1a++;//2}//3publicsynchronizedvoidreader(){//4inti=a;//5……}//6}假设线程A执行writer()方法... 查看全文
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码来分别说明这两个规则:publicclassFinalExample{inti;//普通变量finalintj... 查看全文
· Java的内存泄露发布时间:2014-05-06
Java有垃圾回收,因此不会出现内存泄露。大错特错。这个说法存在好几个问题。尽管Java的确有垃圾回收器来回收那些不用的内存块,但你不要指望它能够点铁成金。GC减轻了开发人员肩上的负担,而原本的那些工作非常容易出错,不过并不是所有内存分配的问题它都能够解决。更糟糕的是,Java的设计允许它可以欺骗GC,使得它能够保留一些程序已经不再使用的内存。经历了20年的C开发以及7年的Java开发后(中间有重叠),我敢说,在这方面Java绝对是远比C/C++要好。尽管它仍有改进的空间... 查看全文
· JVM内存知识发布时间:2014-05-05
堆大小设置JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。-Xms3550m... 查看全文
· 深入理解Java内存模型(一)发布时间:2014-05-05
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信。同步是指程序用于控制不同线程之间操作发生相对顺序的机制... 查看全文
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a=1;b=a;写一个变量之后,再读这个位置。写后写a=1;a=2;写一个变量之后,再写这个变量。读后写a=b;b=1;读一个变量之后,再写这个变量。上面三种情况,只要重排序两个操作的执行顺序,程序的执行结果将会被改变。前面提到过,编译器和处理器可能会对操作做重排序。编译器和处理器在重排序时,会遵守数据依赖性... 查看全文
· java内存泄露原因总结发布时间:2014-04-25
Java内存泄露原因整理一、Java内存回收机制不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Java会使用有向图的方法进行管理内存,实时监控对象是否可以达到,如果不可到达,则就将其回收... 查看全文
· C/C++内存分配方式发布时间:2014-04-24
刚做了篇公司的笔试题,表示内存这块还是得加强。。转篇内存分配的警醒。内存分配方式1.内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配... 查看全文
大数据催生了云计算和移动互联的世界。2020年,企业中,将有一半以上的功能将会在云上完成。在微软全面转向云计算的战略中,CloudOS的重要性不言而喻。而在企业统一平台的愿景上,SQLServer是最为重要一个布局。4月11日,微软召开微软大数据战略分享活动上,微软大中华区服务器产品业务群租总经理陈利宁表示,微软大数据的目标就是,让用户更加容易的把原始数据变成关键性决策工具。其中有三个战略,第一是无论大小,都可以轻松访问数据,第二是利用熟知的工具软件,第三是提供完整、统一的数据平台... 查看全文
接着《Android学习系列(36)--App调试内存泄露之Context篇(上)》继续分析。5.AsyncTask对象我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncTask等系统自带类去做事情,当然无可厚非。但是AsyncTask确实需要额外注意一下。它的泄露原理和前面Handler,Thread泄露的原理差不多,它的生命周期和Activity不一定一致。解决方案是:在activity退出的时候,终止AsyncTask中的后台任务。但是,问题是如何终止... 查看全文
现如今,各种迷你电脑是越来越受青睐,但有时候,你真的难以想象这玩意儿究竟能做到多么小。RaspberryPi是一个非常知名的微型电脑模块工程,已经多次给我们带来惊喜,现在又正式宣布了自己的全新产品:等等!这不是一条内存么?它还真不是。这就是全新设计的“RaspberryPiComputeModule”计算模块,直接使用了DDR2SO-DIMM内存条的接口和造型,长宽尺寸仅为67.6×30毫米。上边搭载着博通BCM2835SoC处理器、512MB内存... 查看全文
Context作为最基本的上下文,承载着Activity,Service等最基本组件。当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏。下面针对一些常用场景逐一分析。1.CallBack对象的引用先看一段代码:@OverrideprotectedvoidonCreate(Bundlestate){super.onCreate(state);TextViewlabel=newTextView(this);label.setText... 查看全文
OpenSSLv1.0.1到1.0.1f中发现了一个非常严重bug(CVE-2014-0160),该bug允许攻击者读取存在bug的系统的64kb处理内存,暴露加密流量的密钥,用户的名字和密码,以及访问的内容。攻击者可以利用该bug窃听通信,直接从服务和用户窃取数据。OpenSSL已经发布了1.0.1g修正bug,Debian发行版也在半小时修复了bug,Fedora发布了一个权宜的修正方案。该bug是在2011年引入到OpenSSL中,使用OpenSSL0.9.8的发行版不受影响... 查看全文