memory leak | codesolutiony



memory leak | codesolutiony

Java 中heap leak是最常见的memory leak。OutOfMemoryError 是其最常见的征兆。 Memory leak有以下几种情况

  • java.lang.OutOfMemoryError: Java heap space
  • java.lang.OutOfMemoryError: PermGen space
  • java.lang.OutOfMemoryError: array size exceeds VM limit
  • java.lang.OutOfMemoryError: request bytes for . Out of swap space?
  • java.lang.OutOfMemoryError: (Native method)

具体介绍前两种
1. Java heap space
也有不同的可能性。
a. 特别是对于长时间存活long-lived applications, 如果有一些长期被referenced objects,GC无法释放内存
b. finalizers。如果一个类定义了finalize函数,那么这个对象的空间不会被GC释放,相反他们are queued for finalization,是在GC清理之后才会执行。

2. Permgen space
"Permanant generation" 是用来存放loaded 类的class declarations,包括类名,类的fields,类的函数等等。因此它得大小depend on 被加载的类的数量以及这些类declaration的大小。
a. 例如写一个程序不停的generate不同的类,会造成溢出。
b. 另外一种常见的造成溢出的原因是一些第三方的lib。在程序redploy的时候,旧的classloader referencing all the previously loaded classes会被新classloader取代,但是有些第三方lib的poor handling of resources导致这些旧的classes仍然存在,导致溢出。
c. Interned java.lang.String objects也是存放在permgen里的。
解决方案:configuration里增加permgen的容量,或者利用类似plumbr的工具找到问题所在。


Read full article from memory leak | codesolutiony


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts