One, the problem arisesProject AdoptionTomcat6.0 for server, the database ismysql5.1, the database persistence layer ishibernate3.0, tospringMVC3.0 for Frames, after the completion of project development, on the eve of the stability of the machine, the test data is inserted4 article/S, update4 article/S, Access300 plays/S, smooth running speed, and it starts running slowly after three days., the number of visits reached1500W Times to throwJava Heap Space Ends.Two 1. Pre-analysis for connection
One, the cause of the Java memory leak:A memory leak refers to a useless object (an object that is no longer being used) that keeps memory or useless objects from being released in a timely manner, resulting in a waste of memory s
First, the problem arisesThe project uses Tomcat6.0 as the server, the database is mysql5.1, the database persistence layer is hibernate3.0, takes the springMVC3.0 as the framework, after the project development completes, the line Eve carries on the stability to copy the machine, the test data is inserts 4 strips/s, updates 4 strips/s, Access 300 times/S, the pre-run speed is smooth, three days after the start of slow, traffic reached 1500W times to throw J
A memory leak is an object or variable that is no longer being used by the program and consumes storage space in memory.In the Java language, there are two criteria for determining whether a memory space is eligible for garbage collection :① gives null value to the object and has not been used in the future;② assigns a
Java memory leaks
There are generally two cases of memory leaks. A situation such as in the C + + language, the allocated memory in the heap, when it is not released, erase all Access to this memory (such as pointer redistribution), and the other is to retain the
Q: How can a memory leak be generated in Java?In A:java, there are many reasons for memory leaks. A typical example is a failure to implement Hascode andThe case where the key class of the Equals method is saved in HashMap. A lot of duplicate objects will be generated at the end. All the
Yes. The reason Java causes memory leaks is clear: a long lifecycle object holds a reference to a short lifecycle object and is likely to have a memory leak, although the short lifecycle object is no longer needed, but because the long lifecycle object holds its reference and cannot be reclaimed, this is the scenario w
A few days ago wrote a memory leak article. This article describes the memory leaks related knowledge: http://blog.csdn.net/u010590685/article/details/46973735But the sample given here is not very good, see a very good example here today to add to everyone.If we write a stack by ourselves. Here's how it's pop: publicpop(){ Object object=arrays[size];
One, the problem arisesProject AdoptionTomcat6.0 for server, the database ismysql5.1, the database persistence layer ishibernate3.0, tospringMVC3.0 for Frames, after the completion of project development, on the eve of the stability of the machine, the test data is inserted4 article/S, update4 article/S, Access300 plays/S, smooth running speed, and it starts running slowly after three days., the number of visits reached1500W Times to throwjava heap space ends Two 1. Pre-analysis for connectio
A few days ago wrote a memory leak of the article, which describes the memory leaks related knowledge: http://blog.csdn.net/u010590685/article/details/46973735But the example given here is not very good, see a good example here today to add to everyone.If we write a stack ourselves, here is the Pop method: publicpop(){ Object object=arrays[size];
1. Static collection classes like HashMap, vectors, etc. are most prone to memory leaks, and the lifetime of these static variables is consistent with the application, and all object objects cannot be freed, as they will always be used by vectors and so on.Static vector v = new vector (); for (int i = 1; i In this example, there is a reference to the vector object in the code stack with reference to the V and object o. In the For loop, we constantly
Is there a memory leak in Java? Yes. While some people say that this is inaccurate, in C + + programs, the memory that is opened up by the current process but not logically managed by the current process is called memory that is leaked by the process. In fact,
A memory leak is an object or variable that is no longer being used and is always occupied in memory. However, there is a garbage collection mechanism in Java that can automatically purge objects that are no longer in use from memory.Even so, there is a case of memory leaks
Write NIO programs often use Bytebuffer to read or write data, then use bytebuffer.allocate (capability) or bytebuffer.alloctedirect (capability) To allocate the cache? The first is to allocate JVM heap memory, which belongs to the GC jurisdiction, which is relatively slow due to the need for copying, and the second is to allocate OS local memory, which is not in GC jurisdiction, and is relatively fast beca
string can be said to be one of the most common Java types, but I've recently heard JDK6 inside String.substring There is a memory leak bug, gang stunned! Let's see what the situation is. This is the code that can cause the exception in thread "main" Java.lang.OutOfMemoryError:Java Heap space: publicclasstestgc{privatestringlargestring= Newstring (newbyte[100000
I. Memory leaks due to expired referencesNote: When the object is not used, the object is set to NULL, and this time the virtual machine does not necessarily release the memory, as to when the release is determined by the garbage collection algorithm.When an object is not in use, it does not reclaim the possibility of a memory
RefWatcher monitoring Fragment:Publicabstract class basefragment extends Fragment { @Override public void ondestroy{ Super. OnDestroy(); refwatcher refwatcher = exampleapplication. Getrefwatcher(getactivity()); refwatcher. Watch(this); }}Working mechanism
RefWatcher.watch()Create a keyedweakreference to the object to be monitored.
Then the background thread checks if the reference is cleared, and if not, the GC is called.
If the reference is still not cleared, dump the heap
, so its life cycle is synchronized with the person, and the class object corresponding to the person class is resident in memory in case the person class is not unloaded until the program finishes running. -As a result, the object objects referenced by obj, once created, will also reside in memory until the end of the run. -4: Release references to useless objects as early as possible the5: Avoid creating
Yes. The reason Java causes memory leaks is clear: a long lifecycle object holds a reference to a short lifecycle object and is likely to have a memory leak, although the short lifecycle object is no longer needed, but because the long lifecycle object holds its reference and cannot be reclaimed, this is the scenario w
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.