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

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 内存 >>列表
· 内存管理之引用计数发布时间:2012-06-18
一、什么是引用计数?引用计数是内存管理的一个技巧,可以看做是一种简单的垃圾回收机制,它允许多个拥有共同值的对象共享同一个对象。二、为什么采用它?对于没有垃圾自动回收机制的语言(如C/C++)和技术(如COM)来说,引用计数提供了一种简洁高效的内存管理方法。它简化了跟踪处理堆中对象的过程。一个对象被从堆中分配出来之后,我们需要明确的知道是谁拥有了这个对象,因为只有拥有这个对象的所有者能够销毁它。但我们在实际使用过程中,这个对象可能被传递给另一个对象(例如通过传递指针参数),一旦这个过程复杂... 查看全文
前言:持续我一贯的标题党作风,说说例子解决方案,没有深入探讨。情景:线上图片服务压缩的图片品质(100),缩略图品质(100)占用了很多空间,导致后来又55个文件了(占用空间160G)才发现这个问题。现在需要解决的是把这部分压缩个低品质的缩略图节省空间(当然在这个硬盘白菜价的时代搞这样的问题没这个必要,我这里讨论的不是节省空间是想找出内存消耗问题)。我用php脚本重新生成缩略图的时候,通过top发现内存消耗一直增加导致后来脚本报错内存不够了,到底谁动了我的内存?处理代码版本一(php)... 查看全文
在.NET应用中一个常常影响性能的因素就是代码消耗了过多的内存。很多的开发人员在编写代码的过程中常常不会关注性能,从而使得应用程序中到处存在性能瓶颈。很多的时候,开发人员关注的总是代码的执行时间的长短,而把真正的性能问题丢掉了一边。在本篇文章中,我们将会找出代码中的哪些功能消耗了多少内存。本篇文章比较简单,我们会主要详细的介绍CLRProfiler这个工具。基础篇:详解介绍Profiler的使用大家可以从这里从微软的站点下载CLRProfiler。一旦下载CLRProfiler之后... 查看全文
通过上一篇文章一些截图,相信朋友们已经基本知道了Profiler的使用方法,现在,如何程序中的方法很多,例如2000个,那么通过上面的方法来查看就相当的痛苦了。怎么办呢?一个比较不错的方法就是将信息导出成为报表的信息,然后在excel中进行分析。操作方法如下:一旦上面的按钮点击之后,所有的调用树就会被显示出来,还没有将信息保存为csv格式,如下:保存为了csv之后,我们通过excel打开,就可以进行分析了,如下:除了采用上面的方法使用Profiler之外... 查看全文
· Tomcat运行Java Web内存溢出发布时间:2012-04-05
SUNJVM的内存管理方式:SUN的JVM是类似人类家族,也就是在一个地方创建对象,在它长期占据空间之前给它多次死亡的机会,SUNJVM会划分为:1.年轻的一代(Younggeneration),包括EDEN和2个幸存者空间(出发地和目的地theFromspaceandtheTospace)2.老一代(Oldgeneration)3.永久的一代(Permanentgeneration)Java虚拟机的运行时数据区一般分类如下(不一定是物理划分):1.堆:主要存放对象实例,线程共享2.栈... 查看全文
· java虚拟机内存模型发布时间:2012-03-20
1java内存分为:程序计数器(当前线程所执行字节码的行号指示器,字节码解释器要通过改变这个计数器的值来选择下一条字节码指令,分支、循环、异常处理等。每条线程都有一条独立的程序计数器,属于线程私有的内存区)、java虚拟机栈(也是线私有的,存储局部变量、操作栈,每个方法执行时创建一个栈帧,执行过程就是栈的出栈入栈操作)、本地方法栈(执行native方法)、年轻代堆(eden、fromsurvivor、tosurvivor)、年老代堆(经过几次垃圾回收,保存下来的)、持久代堆(也叫方法区... 查看全文
· JVM GC日志和内存DUMP参数配置发布时间:2012-03-14
在JVM出现内存溢出或泄露时,为便于排查和定位,需要JVM的启动上增加相应的参数。主要是GC日志和内存DUMP参数。详细如下。1.GC日志和内存DUMP参数配置本文参数配置基于各厂商的JDK6.0版本,低版本或高版本的参数有可能不同。各厂商JVMGC日志和内存DUMP参数配置如下:(1)OracleJVM-Xloggc:${目录}/managed1_gc.log-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=${目录}(2)HPJVM... 查看全文
JVM深入笔记(2)内存区溢出场景模拟作者:柳大·Poechant电邮:zhongchao.ustc#gmail.com(#->@)博客:blog.csdn.net/poechant日期:Feb.23st2012《JVM深入笔记(1)内存区域是如何划分的?》一文已经介绍了JVM对内存区域的划分与管理。在现实的编程过程中,会遇到一些OutOfMemoryError(OOM)的情形。通过模拟,我们可以直接点中这些场景的本质,从而在纷繁复杂的千万行代码中避免这样去coding... 查看全文
· java内存溢出发布时间:2012-03-06
从百度文库上看到的一片关于内存溢出的解析:核心提示:原因有很多种,比如:1.数据量过于庞大;死循环;静态变量和静态方法过多;递归;无法确定是否被引用的对象;2.虚拟机不回收内存(内存泄漏);说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。内存溢出的问题要看业务和系原因有很多种,比如:1.数据量过于庞大;死循环;静态变量和静态方法过多;递归;无法确定是否被引用的对象;2.虚拟机不回收内存(内存泄漏)... 查看全文
最近发现了这么一句代码:System.Diagnostics.Process.GetCurrentProcess().MaxWorkingSet=(IntPtr)maxWorkingSet;学习一下:---------------------------------------------------------------微软的.NETFRAMEWORK现在可谓如火如荼了。但是,.NET一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称GC的功能和智能化都很高,但是内存的回收问题... 查看全文
· 遇到PermGen内存溢出问题(转)发布时间:2012-02-24
开发的应用程序平时运行时没有问题,当同时使用人数达到10人左右时,过不了多久就报告PermGen内存溢出,狂晕了一段时间,通过在百度上搜索,发现产生此问题的原因是应为装载的class太多造成的。当服务器收到大量http请求时,tomcat需要首先编译jsp文件,这个时候会装载需要的class,又因为PermGen不会自动回收内存就会造成内存溢出。解决方案:一是将需要用到的class文件放置到tomcat下的share/lib和share/classes目录下;二是通过在catalina... 查看全文
· JVM内存介绍、总结发布时间:2012-02-23
jvm内存详解(一)http://www.ibm.com/developerworks/cn/java/j-nativememory-linux/index.html#resourcesjvm内存详解(二)http://hi.baidu.com/gds718/blog/item/2737e8f5138e1a29720eec9b.htmlJVM调优总结-序http://pengjiaheng.iteye.com/blog/518622JVM调优总结(一)--一些概念http... 查看全文
· Java堆内存的10个要点发布时间:2012-02-20
当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我甚至不知道当对象创建时,它们被放在了哪里。当我开始正式写一些程序后,我会经常遇到java.lang.outOfMemoryError的报错,之后我才开始关注什么是堆内存或者说堆空间(heapspace)。对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编程的每个基础,使你发觉编程的秘诀。对于程序员来说,知道堆空间,设置堆空间... 查看全文
看了很多乱七八糟的设计模式的书,最后突然发现自己把最基础的东西忘记了,所以特地温习了一下,记录下来,与大家共勉。在Java中可以通过Integer.SIZE这样的方法直接查看基本类型所占内存空间的大小。通过一下程序就能够查看了:System.out.println("Integer:"+Integer.SIZE);System.out.println("Byte:"+Byte.SIZE);System.out.println("Long:"+Long.SIZE);System.out... 查看全文
1.发送短信调用TextMagicAPI。//IncludetheTextMagicPHPlibrequire('textmagic-sms-api-php/TextMagicAPI.php');//Settheusernameandpasswordinformation$username='myusername';$password='mypassword';//CreateanewinstanceofTM$router=newTextMagicAPI(array... 查看全文
· java虚拟机之内存区域发布时间:2012-02-08
java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括一些几个内存区域。1.程序计数器程序计数器(Programcounterregister)是一块较小的内存空间。它在内存消耗方面可以忽略不计。它的作用可以看作是当前线程所所执行的字节码的行号指示器。每条线程都有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储。2.栈与程序计数器一样,栈(Stacks)也是线程私有的,它的生命周期和线程相同。栈描述的是java方法执行的内存模型... 查看全文
· java中的堆栈内存 (转)发布时间:2012-02-02
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量... 查看全文