Monday, April 25, 2005

uClinux for Linux Programmers

uClinux for Linux Programmers

Java memory leak reason...

Memory leak in Java:
The Object is reachable but it is not live. Meaning the object has reached the end of its lifecycle and now GC should be able to reclaim this object but some erroneous references prevents it to get garbage collected. Most of the time, a single lingering reference can have massive memory impact.


Wednesday, April 06, 2005

"Should I buy ECC or non-ECC RAM?"

Q: Should I buy ECC or non-ECC RAM?
ubiquityman wrote:

It was published in 1998 (EE Times) that a approximately 1 bit error occurs in 256MB of ram every month.

RAM has increased in speed significantly since then, but manufacturing processes have also improved. It's hard to say what the current error rate is but let's assume that it's about the same.

So for those with 1G of memory, that's approximately 1 bit error every week.

It doesn't matter if you reboot every hour, as long as you run your computer 24h/day, the rate at which a bit error will occur is approximately once a week (if you have 1G of RAM). (If you run your computer less frequently, then obviously, the rate at which bit errors occurs will also be less.)

Also, the nature of memory is that although bit errors occur randomly to some extent, there is a higher probabilty that errors will reoccur at the same location, in weaker bits. We consider a memory bit as digital, but the actual silicon landscape is such that not all bits are created identical or equal. Some are "more susceptible" to soft errors.

So, if you have a "weak bit" in a frequently used place, you just have bad luck. Your machine might crash unexpectidly more often than others. Any programmer can tell you that an incorrect bit is unpredictable. It could be benign, but it cause also be catastrophic in terms of data.

Now, if you do reboot frequently, that reduces the probability that the bit error will cause a negative effect because the bit error lives in your system for less time. It also reduces the compounding of errors which again would have increasing potential to cause data loss.

Like I've said before. If you play games and that's all you do. I probably would not pay the 12%-25% premium for ECC.

However, if you leave your machine on most of the time, overclock, stress your machine in other ways, or use it for something "serious" other than gaming, I would recommend ECC memory. For approximately the cost of eating out one night, I can have the peace of mind of ECC.

I put ECC in all my home machines except for my laptop and PDA. At today's prices, ECC is a bargain.

The luckier you feel, the less you need ECC. In the words of Dirty Harry "Do you feel, Lucky!?"


I checked the Intel website and they do say that there is some performance loss with ECC enabled.

I've also read elsewhere that unless a memory error is detected, there is no performance loss with modern chipsets. (I would suggest that the intel information is the correct one.)

However, I personally have ran benchmarks on my PII-450 w/ i440BX chipset to test the performance of ECC memory.

My benchmarks show that my machine benchmarks faster in memory with ECC enabled.

This person here had similar results:

Ajax using XMLHttpRequest and Struts

Ajax using XMLHttpRequest and Struts: "Ajax using XMLHttpRequest and Struts"