Plugging Internet Explorer's Leaks
jgwebber writes "If you're developing DHTML web apps, you probably already know first-hand that Internet Explorer has horrendous memory leak issues. You can't not run on IE, so you've got to find a way to plug those leaks. So I've created a tool to help you find them. So until Microsoft decides to fix its browser architecture (ha!), at least we can keep it from blowing huge amounts of memory."
The true source of IE memory leaks?
Korean outsourcing
Actually, it's very easy to make a site not run on IE; as the following example shows.
.
<?
if (preg_match("/MSIE/i", $_SERVER["HTTP_USER_AGENT"])) {
header("Location: http://www.mozilla.org/products/firefox/");
exit();
};
?>
<html>
<head>
<title>This site will not display in Internet Explorer</title>
.
.
.
</head>
<body>
.
.
</body>
</html>
Je fume. Tu fumes. Nous fûmes!
Please, tell us more about the fascinating workings of computers you seem to know so much about.
(Why 16384 instead of 16000? Because computers use base-12 counting. Thus 16 megabytes = 16384 bytes...)
I think you made a simple typo in this sentence. It should read Thus 16 megabytes = 1283918464548864 bytes.
Well, the memory remains allocated to the application. The thing is, it's a programming bug. The application allocates a piece of memory but never releases it, not even when it's not needed anymore. In a managed environment like .NET or JVM, a garbage collector periodically checks whether a certain piece of code or memory is still active, and when it's not it gets "collected" (freed).
Normally, it leaks out onto the surface upon which the computer is resting, however I have connected some surgical rubber tubing to my computer and have thus routed the outflow into the sump in my basement, where it is periodically flushed into the rain sewer. I'm not entirely sure whether this is environmentally sound, or not, and I would appreciate anyone with more experience in proper disposal techniques for leaked memory giving me a heads up.
The higher the technology, the sharper that two-edged sword.