1.c#的托管代码和非托管代码
c#有自己的内存回收机制,所以在c#中我们可以只new,不用关心怎样delete,c#使用gc来清理内存,这部分内存就是managed memory,大部分时候我们工作于c#环境中,都是在使用托管内存,然而c#毕竟运行在c++之上,有的时候,(比如可能我们需要引入一些第三方的c++或native代码的库,在Unity3d开发中很常见)我们需要直接在c#中操纵非托管...
分类:
编程语言 时间:
2014-12-15 13:47:41
阅读次数:
257
关于us高和sy高的问题分析:当us值过高时,表示运行的应用消耗大量的CPU。java应用造成us高的原因主要是线程一直处于可运行(Runnable)状态,通常这些线程在执行无阻塞、循环、正则或纯粹的计算等任务造成的;另外一个可能也会造成us高的原因是频繁GC。当sy值高时,表示linux花费了更多...
分类:
其他好文 时间:
2014-12-14 17:10:03
阅读次数:
155
关于Java中存不存在内存泄露问题。我们首先要了解什么是内存泄露。在Java中内存泄露简而言之就是对象使用完,对象所占用的内存空间没有被释放,直至程序运行结束。那么现在问题又来了!我们不是说Java拥有良好的垃圾回收机制吗?为什么还是存在内存泄露呢?这时候我们就有必要了解下GC的机制了。当在程序运行...
分类:
编程语言 时间:
2014-12-14 13:16:07
阅读次数:
238
php的变量是由zval结构体表示包含zvalue、type、is_ref_gc、refcount_gc构成有八种类型构成boolean、interger、float、string、array、object、resource、nullphp的常量:typedef struct _zend_const...
分类:
Web程序 时间:
2014-12-13 23:06:57
阅读次数:
204
Java之OutOfMemoryError简单分析 最近编码遇到了Java内存溢出的问题,所以就想顺便总结一下几种导致Java内存溢出的栗子,以及碰到Java内存溢出要如何去解决。Java堆溢出 Java堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到对象之间有可达的路径来避免.....
分类:
编程语言 时间:
2014-12-13 17:49:32
阅读次数:
187
字符串:string 字符串的不可变性 当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一款空间 当程序结束后,GC会扫描整个 内存,如果发现有的空间没有被指向,则立即把他们销毁我们可以将字符串string类型可以看做是char类型的一个只读数组ToCharArray() new Stri...
分类:
其他好文 时间:
2014-12-13 17:38:01
阅读次数:
125
在此OBE中, 您对Java JVM 中的G1垃圾收集器有了个大致的了解。首先你学到了为何堆和垃圾收集器是所有Java JVM的关键部分。接下来讲述了使用CMS和G1收集器进行垃圾回收的工作方式. 接下来,您了解了G1的命令行参数/开关以及和使用它们的最佳实践。最后,您了解了日志对象以及GC日志中的数据。...
分类:
其他好文 时间:
2014-12-12 19:06:13
阅读次数:
388
本篇主要阐述一下java垃圾收集的几种算法。其中主要包括:复制算法、标记-清除算法、标记-压缩(清理)算法和分代收集算法。下面简单介绍一下其实现的原理。
1、复制算法...
分类:
编程语言 时间:
2014-12-11 00:23:49
阅读次数:
307
这篇说说如何从JVM的角度来理解线程,可以对Java的线程模型有一个更加深入的理解,对GC的一些细节也会理解地更加深刻。本文基于HotSpot的OpenJDK7实现。
我们知道JVM主要是用C++实现的,JVM定义的Thread的类继承结构如下:
Class hierarchy
- Thread
- NamedThread
- VMThread
-...
分类:
编程语言 时间:
2014-12-10 14:20:18
阅读次数:
212
垃圾回收 GCpublic class MyObject { private String id; public MyObject(String id) { this.id = id; } @Override public String toString() { return "MyObject{"...
分类:
编程语言 时间:
2014-12-10 14:09:55
阅读次数:
183