- 博客(7)
- 资源 (4)
- 收藏
- 关注
转载 Java实例对象占用内存
最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验。 简要说一下,相信会对大家写出优质的程序有所帮助。 下面的论述针对32位系统,对64位系统不适用,后叙经常你写了一个程序,一测试,功能没问题,一看内存占用也不多,就不去考虑其它的东西了。但可能程序使用了一个什么数据结构,会当数据规模变大时,内存占用激增。 基本&&关键的问题是,Java里各种东东占多少内存?
2011-06-07 15:20:00 6264 2
原创 单机上多JVM同步控制的一种方法
在一个JVM进程中的同步控制,无非就是线程之间的同步问题,但要想在多JVM进程之间实现访问本地系统资源的同步,却并非JVM所擅长的了。当然,若依赖第三方Master主控进程,这个问题还是可以解决的。多于简单的系统而言,这样做无疑会增加系统的复杂性,从而导致整个系统的不稳定性和潜在的不安全。所以,下面就如何在单机上实现多JVM进程之间的同步控制,给出了一个简单的方法。 JD
2011-06-04 10:04:00 2206
转载 用Lucene构建实时索引的文档更新问题
<br />在讨论了使用Lucene内存索引和硬盘索引构建实时索引的问题。<br />然而有的读者提到,如果涉及到文档的删除及更新,那么如何构建实时的索引呢?本节来讨论这个问题。1、Lucene删除文档的几种方式IndexReader.deleteDocument(int docID)是用 IndexReader 按文档号删除。 IndexReader.deleteDocuments(Term term)是用 IndexReader 删除包含此词(Term)的文档。 IndexWriter.del
2011-06-02 10:18:00 1335
转载 用Lucene构建实时的索引
<br />由于前一章所述的Lucene的事务性,使得Lucene可以增量的添加一个段,我们知 道,倒排索引是有一定的格式的,而这个格式一旦写入是非常难以改变的,那么如何能够增量建索引呢?Lucene使用段这个概念解决了这个问题,对于每个已 经生成的段,其倒排索引结构不会再改变,而增量添加的文档添加到新的段中,段之间在一定的时刻进行合并,从而形成新的倒排索引结构。<br />然而 也正因为Lucene的事务性,使得Lucene的索引不够实时,如果想Lucene实时,则必须新添加的文档后IndexWri
2011-06-02 10:16:00 857
原创 从概念理解Lucene的Index(索引)文档模型
<br />Lucene主要有两种文档模型:Document和Field,一个Document可能包含若干个Field。<br />每一个Field有不同的策略:<br />1.被索引 or not,将该字段(Field)经过分析(Analyisi)后,加入索引中,并不是原文 。<br />2.如果被索引,可选择是否保存“term vector”(向量),用于相似检索。<br />3.可选择是否存储(store),将原文直接拷贝 ,不做索引,用于检索后的取出。<br />Lucene中的文档模型类似于数
2011-06-02 10:14:00 1435
转载 JVM内存配置详解
<br />前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊 跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理;<br />基本概念<br /> 堆/Heap<br /> JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Windows下为2G,而Linux 下为3G;64Bit的就没有这个限制
2011-06-01 20:12:00 1225
转载 JVM内存模型及垃圾收集策略解析
JVM内存模型是Java的核心技术之一,之前51CTO曾为大家介绍过JVM分代垃圾回收策略的基础概念 ,现在很多编程语言都引入了类似Java JVM的内存模型和垃圾收集器的机制,下面我们将主要针对Java中的JVM内存模型及垃圾收集的具体策略进行综合的分析。一 JVM内存模型1.1 Java栈Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回 值,以及方法调用上下文。栈空间随着线程的终止而释放。StackOverfl
2011-06-01 19:08:00 2015
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人