- 博客(17)
- 资源 (27)
- 问答 (1)
- 收藏
- 关注
转载 堆和栈的区别(转过无数次的文章)
转载: 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据
2015-02-26 17:11:15 391
原创 线程的一些知识点
多线程共享堆空间,栈空间独立,多进程独享堆空间和栈空间。 锁池和等待池如图所示: 假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁,同时线程A就进入到了该对象的等待池中。如果另外的一个线程调用了相同对象的notifyAll()方法,那么处于该对象的等待池中的线程就会全部进入该对象的锁池中,准备争夺锁的拥有权。哪个线程最终能争取到锁由操作系统决定。 解决死锁的方
2015-02-26 16:17:30 412
原创 Java环形缓冲区+生产消费模型及同步开销测试
代码是为了使用环形缓冲区实现消费者生产者功能: package ringBuffer.parallel; import java.io.IOException; import java.io.RandomAccessFile; import java.util.LinkedHashMap; import java.util.Map; public class Producer { pu
2015-02-22 22:30:22 1888
转载 Java性能调优笔记
转自: http://www.cnblogs.com/litaobupt/articles/2952386.html 调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。 资源消
2015-02-21 23:11:00 745
转载 JVM性能调优
、性能调优的步骤 1.1、衡量系统现状 包括请求次数、响应时间、资源消耗等;如:A系统目前95%的请求响应为1s。 1.2、设定调优目标 根据用户所能接受的响应速度、系统现有的机器、所支撑的用户量制定出来的,因此通常会设定调优目标:95%的 请求在500ms内返回。 1.3、寻找性能瓶颈 在【2、寻找性能瓶颈】会专门介绍。通常性能瓶颈的表像是: 1.3.1
2015-02-21 22:46:37 731
转载 为什么Java程序占用的内存比实际分配给它的要多
转自: http://www.oschina.net/question/100267_65544 很多人错误的认为运行Java程序时使用-Xmx和-Xms参数指定的就是程序将会占用的内存,但是这实际上只是Java堆对象将会占用的内存。堆只是影响Java程序占用内存数量的一个因素。要更好的理解你的Java程序将会占用多大的内存需要先了解有哪些因素会影响到内存的占用。这些因素包括: 对
2015-02-21 22:35:44 2504
原创 JVM内存使用观测
1. 如果是本机或者网络环境好,单进程, 使用jconsole. 2.如果是服务器监控进程JVM内部内存情况,使用jstat, 但其很难精确。 3.简单的内存使用测试用sar就行了。
2015-02-20 19:08:51 579
转载 GC日志分析
转自: http://blog.csdn.net/yxc135/article/details/12137663 首先,给出一个日志输出的例子: 参数设置为: -XX:+PrintGCDetails -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=8 -XX:NewSize=10M -XX:MaxNewSize=10M 参数解释:
2015-02-16 20:33:42 699
转载 JAVA中JVM的GC日志解析
转自: http://blog.csdn.net/simonchi/article/details/8200237 0.335: [GC [PSYoungGen: 2213K->736K(18368K)] 2213K->736K(60224K), 0.0014123 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
2015-02-16 20:21:23 596
原创 关于一个GC回收内存总量的疑问
package ringBuffer; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputS
2015-02-12 17:29:10 1228
原创 Java IO开销测试比较
package ringBuffer; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.RandomAcce
2015-02-08 19:43:27 633
转载 java nio 之MappedByteBuffer
转自: http://blog.csdn.net/mgoann/article/details/3345850 其实掌握MappedByteBuffer并不难,只要记住“三方三法三特性”(我自己总结的,呵呵~~不要扔鸡蛋哦。。。)这句话就可以轻松搞定!MappedByteBuffer 只是一种特殊的 ByteBuffer ,即是ByteBuffer的子类。 MappedByteBuf
2015-02-06 14:56:07 430
原创 differ 用法
[liuqiang2@mu02 logs]$ diff -ur test1/ test3/ diff -ur test1/1.txt test3/1.txt --- test1/1.txt 2015-02-03 20:52:01.087877007 +0800 +++ test3/1.txt 2015-02-03 20:52:26.761883769 +0800 @@ -1,2 +1
2015-02-03 20:41:09 3027
转载 聊聊JVM的年轻代
转自: http://ifeve.com/jvm-yong-generation/ 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分
2015-02-03 11:13:31 558
原创 关于Pregel模型的缺陷
这里主要讲Aggregator, 在Pagerank计算中,由于每轮需要计算aggregation的值,即Hama中的globalError,这是一个每轮根据各个顶点value汇总进行reduce的聚合值,由于Pregel中即使顶点已经收敛,但其邻接顶点未收敛的话,他将被迫参与运算, 比如1->2, 3->2, 即使1收敛了,2,3未收敛的话,1同样将参与计算,无法halt,必须等到 MA
2015-02-02 16:33:54 1120
数据恢复工具(MiniTool_U盘数据丢失)
2015-08-13
关于Jstat的内存回收数量查看
2015-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人