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

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 内存 >>列表
· String对象与内存控制发布时间:2015-01-28
1.编译期和运行期的区别/***编译时,和运行时的不同*直接量是在编译就分配内存,而引用变量和方法调用创建的运行时才分配内存*@authorAdministrator**/publicclassStringJoinTest{publicstaticvoidmain(String[]args){Stringstr1="hello的长度为:5";Stringstr2="hello的长度为:"+"hello".length();intlen=5;Stringstr3="hello的长度为:"+len... 查看全文
· 「OC」内存管理发布时间:2015-01-28
一、基本原理(一)为什么要进行内存管理。由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也被回收... 查看全文
· Objective-C基础3:内存管理续发布时间:2015-01-25
1.上篇我们讲了OC中的内存管理基础,我们再总结一下何时该用内存管理。1)当用new、alloc、copy创建对象时,必须要释放对象。2)当拥有对象时,如果是临时对象,不需要释放;当需要长时间保留对象时,必须保留对象并且在dealloc方法中释放对象。2.OC中的垃圾回收机制OC2.0引入了垃圾回收机制,也就是启用了垃圾回收机制之后,我们忘记了释放对象,OC会帮我们释放对象,这点可看出OC比C++的强大之处了。垃圾回收机制主要原理是在运行中定时动态跟踪对象,检查对象的引用技术并且进行清理... 查看全文
· Objective-C基础2:内存管理基础发布时间:2015-01-24
1.内存存储区域C、C++里面。栈区:存储临时变量和对象。堆区域:存储动态分配对象。静态变量存储区:存储静态变量和常量对象。OC里面的内存存储区域跟C、C++一样。2.为什么要进行内存管理写过C、C++程序的都知道,内存管理永远是C++程序的一大痛点,项目当中崩溃全部来自于内存相关的操作,尤其是指针操作和内存操作,稍不注意就会产生内存访问违规造成程序崩溃。那么如何进行内存管理呢,个人认为有以下几点原则:尽量用系统提供给我们的封装对象,不要用原生的,比如用string而不要用char*... 查看全文
转载自:http://blog.csdn.net/cutesource/article/details/5907418首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和JavaVisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和FullGC的次数... 查看全文
· Java常见内存溢出异常分析发布时间:2015-01-20
栈溢出(StackOverflowError)栈溢出抛出java.lang.StackOverflowError错误,出现此种情况是因为方法运行的时候栈的深度超过了虚拟机容许的最大深度所致。出现这种情况,一般情况下是程序错误所致的,比如写了一个死递归,就有可能造成此种情况。下面我们通过一段代码来模拟一下此种情况的内存溢出。importjava.util.*;importjava.lang.*;publicclassOOMTest{publicvoidstackOverFlowMethod()... 查看全文
· NSString初始化及其内存管理发布时间:2015-01-20
1.NSString3种初始化方法a.直接赋值:NSString*str=@"astring",这种方式使用常量内存。b.使用类方法:NSString*str=[NSStringstringWithString:@"astring"];NSString*str=[NSStringstringWithFormat:@"ageis%i,heightis%f",20,180];c.使用实例方法:NSString*str=[[NSStringalloc]initWithString... 查看全文
· u-boot分析(七)----内存初始化发布时间:2015-01-19
u-boot分析(七)上篇博文我们按照210的启动流程,分析到了时钟初始化,今天我们继续按照u-boot的启动流程对内存的初始化进行分析。今天我们会用到的文档:1.2440芯片手册:http://download.csdn.net/detail/wrjvszq/83589492.6410芯片手册:http://download.csdn.net/detail/wrjvszq/83589653.210芯片手册:S5PV210_UM_REV1.1(我的不知道为什么传不上去大家去百度搜吧)4... 查看全文
· Android内存泄漏研究发布时间:2015-01-06
文/@寒江不钓(贾吉鑫)概念根搜索算法Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GCRoots)开始对heap进行遍历。到最后,部分没有直接或者间接引用到GCRoots的就是需要回收的垃圾,会被GC回收掉。根搜索算法相比引用计数法很好的解决了循环引用的问题。举个例子,Activity有View的引用,View也有Activity的引用,之前我还尝试去源代码里找Activity何时和View断开连接是大错特错了。当Activityfinish掉之后... 查看全文
昨天,一位认证信息为小米员工的网友在微博上发言,“iPhone6用户都不在意1G内存不够,红米2的1G内存够用了,保持流畅的秘诀就是少装App.”后来的事情大家知道了。要保持安卓手机流畅,少装App确实有用,不过iPhone6是否流畅和少装App却没有半个F码的关系。iOS8让人们第一次发现原来苹果也会卡顿,而与之相比,Android卡Sh1t却早已名声在外。Google在推出4.4时发明了ART(Androidruntime)来解决卡慢,5... 查看全文
· (转)c#对象内存模型发布时间:2015-01-05
对象内存模型C#的对象内存模型写这篇博客的主要目的是为了加深自己的理解,如有不对的地方,请各位见谅。C#的对象内存模型:一、栈内存和堆内存1、栈内存由编译器自动分配和释放,主要用来保存一些局部变量、函数的参数等,例如,inta=10,那么编译器会自动在栈上开辟一块内容用来存储变量a。2、堆内存由程序员手动申请和释放,在C++中,通过new关键字申请,编译器不会释放,必须通过delete释放,对于C#,通过new关键字申请,因为编译器的垃圾回收机制,程序员不需要手动释放内存。例如... 查看全文
· java内存溢出优化发布时间:2014-12-28
本文转自:http://www.importnew.com/11336.html另外付JVM参数介绍:http://www.cnblogs.com/langtianya/p/3898760.html高性能应用构成了现代网络的支柱。LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求。要优化用户体验,低延迟地响应这些请求非常重要。比如说,用户经常用到的一个功能是了解动态信息——不断更新的专业活动和内容的列表。动态信息在LinkedIn随处可见,包括公司页面,学校页面以及最重要的主页... 查看全文
· c#浅谈反射内存的处理发布时间:2014-12-25
这段时间由于公司的项目的要求,我利用c#的反射的机制做了一个客户端框架。客户端里的所有的模块都是以一定形式进行提供,例如:FORM,UserControl.在做的过程中很简单与愉快。具体的过程如下:1:收集客户的需求2:整理需求,形成必要的文档3:通过讨论大体的得到程序的界面风格4:由UI设计师设计出来具体的界面形式5:通过需求封装必要的服务(我们可以使用c#的WCF服务或者JAVA的服务)6:制作服务管理框架7:封装程序要使用到的控件8:编写客户端框架9:编写模块10... 查看全文
微软最近通过统计证实,绝大多数从WindowsPhone商店下载安装的应用程序(70%左右)都运行在低内存设备上。这些手机大多是512MB或更低端配置,运行WindowsPhone8或WindowsPhone8.1。在微软的月度数据报告内容中,你可以一目了然的看到下载或更新应用的手机型号,内存大小以及运营商的一些状况。像比较有代表性的512MB机型Lumia520,它在所有应用的下载中占据了28%左右的比例。而总下载量中占据前五也是低内存设备,并且在排名前十位的机型中占有七个位置... 查看全文
一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试信息。如果在Linux下运行adblogcat命令,可以看到如下的输出:D/dalvikvm(745):GC_CONCURRENTfreed199K,53%free3023K/6343K,external0K/0K... 查看全文
· 4. 内存访问模型的重要性[转载]发布时间:2014-11-26
在高性能的计算中,我们常说缓存失效(cache-miss)是一个算法中最大性能损失点。近些年来,我们的处理器处理能力的增长速度已经大大超过了访问主内存的延迟的缩短。通过更宽的,多通道的总线,到主内存的带宽已经大大增加,但延迟并没有相应显著减少。为了减少延迟,处理器采用愈加复杂的多层的高速缓存子系统。在1994年的一篇论文“Hittingthememorywall:implicationsoftheobvious”中描述了这个问题,并且认为由于缓存失效(cache-miss)必定存在... 查看全文
· 6. 内存屏障[转载]发布时间:2014-11-26
原文地址作者:MartinThompson译者:一粟校对:无叶,方腾飞本文我将和大家讨论并发编程中最基础的一项技术:内存屏障或内存栅栏,也就是让一个CPU处理单元中的内存状态对其它处理单元可见的一项技术。CPU使用了很多优化技术来实现一个目标:CPU执行单元的速度要远超主存访问速度。在上一篇文章“WriteCombing(合并写)”中我已经介绍了其中的一项技术。CPU避免内存访问延迟最常见的技术是将指令管道化,然后尽量重排这些管道的执行以最大化利用缓存,从而把因为缓存未命中引起的延迟降到最小... 查看全文
最近遇到一个问题原本虚拟机分配了2G的堆大小,发现OS用top命令看,进程的VIRT内存一直增加,而且RES也一直往上增加,最后前者达到了16G,后者达到了8G,最后内存整个进程宕调后来尝试重现问题,打了JAVA线程堆栈,发现堆栈里面大量的pool的线程,多达上万个。就是有个人写代码,误用JAVA线程池,每次用都新new一个线程池ThreadPoolExecutor,最后自己写代码测试,确实每次new会占用堆外堆存,没有跟踪到底层,但是线程池是管理线程的,虚拟机线程肯定是要跟OS申请线程资源的... 查看全文
在iOS中引用计数是内存的管理方式,虽然在iOS5版本中,已经支持了自动引用计数管理模式,但理解它的运行方式有助于我们了解程序的运行原理,有助于debug程序。操作系统的内存管理分成堆和栈。在堆中分配的内存,都试用引用计数模式;在栈中则不是。NSString定义的对象是保存在栈中,所以它没有引用计算。看一些书上说它的引用计算会是fffffffff最大整数,测试的结果显示它是-1.对该对象进行retain操作,不好改变它的retainCount值。MutableNSString定义的对象... 查看全文
· JAVA内存释放发布时间:2014-11-18
(问题一:什么叫垃圾回收机制?)垃圾回收是一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用,以免造成内存泄露。(问题二:java的垃圾回收有什么特点?)JAVA语言不允许程序员直接控制内存空间的使用。内存空间的分配和回收都是由JRE负责在后台自动进行的,尤其是无用内存空间的回收操作(garbagecollection,也称垃圾回收)... 查看全文