Code Cleanup Culls LibreOffice Cruft
mikejuk writes with an interesting look at what coders can get around to after a few years of creating a free office suite: dealing with many thousands of lines of deprecated code: "Thanks to the efforts of its volunteer taskforce, over half the unused code in LibreOffice has been removed over the past six months. It's good to see this clean-up operation but it does raise questions about the amount of dead code lurking out there in the wild. The scale of the dead code in LibreOffice is shocking, and it probably isn't because the code base is especially bad. Can you imagine this in any other engineering discipline? Oh yes, we built the bridge but there are a few hundred unnecessary iron girders that we forgot to remove... Oh yes, we implemented the new chip but that area over there is just a few thousand transistors we no longer use... and so on." Well, that last one doesn't sound too surprising at all. Exciting to think that LibreOffice (which has worked well for me over the past several years, including under the OpenOffice.org name) has quite so much room for improvement.
There are probably dozens of extra nails that were just hammered in rather than be removed. There are extraneous pieces of lumber.
And a house that was remodeled? I've seen newspaper used as filler. I've seen layers of roofing, with things buried in between layers.
Frankly I don't know what's inside my walls, and I'm not sure I want to know.
Nice alliteration.
It would not be very surprising to see a lot of dead code.
I maintain the code for MoreTerra, a Terraria map editor program and I'm pretty sure I've got dead code in there and that's a pretty small project.
With a large number of people working on the code it likely ends up slowly clogging up as no one quite knows what the others are doing.
Dare I ask what type of dead code exists in something extra huge, but closed source, like the Windows code base or for MS Office? But I'd
bet for all MS's faults that the code for Norton Antivirus is 10x worse.
Sounds like they already put a lot of work into this, but someone should tell them that you can automate things like removing unused code.
Troll is not a replacement for I disagree.
I've been working on a project where there were 3 separate wrappers around a database, each returning different objects containing the same data... So you had to convert those each time two modules using different wrappers needed to communicate. I tried to clean it up a bit, but eventually I stopped because my manager was frowning upon that because "I broke working code". Also there were parts that I didn't know if they were still in use. I also ran a profiler and found 80% of the functions never got called. That doesn't mean it's dead code of course, but looking at the function names I got an eerie feeling with a bunch of them. Anyway, I learned a lot about how not to manage software, I quit the company since then and I can only hope things have changed over there.
"It's too bad that stupidity isn't painful." - Anton LaVey
...lots of stuff is left lying about which might not be used any longer on the off chance that it might be adapted to some future purpose. Sounds like genetics.
so most people wont notice a new build.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
Can you imagine this in any other engineering discipline? Oh yes, we built the bridge but there are a few hundred unnecessary iron girders that we forgot to remove...
Those would be perfectly valid if upon discovering your girder was 3 inches too short you could instantly create a copy of it, set the original aside, then alter and test that copy of the girder. Then you might leave a few extras lying around.
I never get crashes with LibreOffice. Whenever I try Word on some documents (docx) I get a crash. I was completely unable to edit some documents in Word (sent to me by colleagues) until I opened them in LibreOffice, saved them in doc format, then reopened them in Word. It happens with distressing regularity. I find LibreOffice much more stable than Word personally. The worst part is when once I edited a doc in Word, saved it, and when later tried to open it again had a similar problem. I am not sure what document elements cause this but it's a sad state of affairs when LibreOffice is not only more stable (for me), but handles better MS own file format (even though there are still big deficiencies in the docx file handling in LibreOffice). So, stability issues? I guess it depends on your computer.
I like my dinosaurs feathery, and my pterosaurs hairy (or is it pycnofibery?)
Bridges often have unused structural elements: walk-ways made unsafe by modern traffic levels, maintenance accesses unused for safety reasons, supports made redundant beyond the factor of safety by bridge improvements, etc. Chips and boards too: FPGAs with 10% utilization, chip designs re-purposed with functional components disabled, subsystems replaced in boards by new designers not confident enough to remove the old design, etc.
Cruft in software is more often removed because (1) software has a potentially longer lifetime than hardware and (2) it's a lot easier to remove an uncalled function from a program than a girder from a bridge! Software cleanup should be an expected and planned part of a project's life cycle.
I do think it matters. Yes, a compiler can throw out dead code, but not in all cases. E.g. if you have an enum where some values aren't used, and you then call a function if a variable has that unused value, how is the compiler going to find out? It's not only functions, there could be unused tests in code etc. All this clogs up the code and can make reading the code a living hell. It can turn an elegant part into a mess. Not mentioning the time wasted of developers trying to find out what a function does, only to discover it's not used. The article doesn't deal with the results in terms of code size or performance, but I'm very interested to find out.
Anyway: you can either have clean code or maintainable code, but not both at once in my experience.
"It's too bad that stupidity isn't painful." - Anton LaVey
LIbreOffice hasn't been OO in well over a year. But nice try with the trolling.
And this, boys and girls, is how we end up with Windows 7/64 guzzling two gigs of memory after start-up.
Not by this one isolated idea, but the very concept of "meh it doesn't cause a problem" snowballing until it IS a problem.
I drafted up a mini-essay assuming it was C-style code, but the article is talking about methods. Clearing out half of the methods means that those virtual method tables are now half the size, which will result in much snappier execution. Less cache misses, less trash in the cache lines, shorter hash collision tables, it's all good stuff!
Nevermind all of the benefits of faster loading times, less address exhaustion, etc that apply to ANY language.
Oh yes, we built the bridge but there are a few hundred unnecessary iron girders that we forgot to remove...
Well, look at bridges built in the 1800's compared to the ones today. Would we build a modern bridge today using wrought iron links http://en.wikipedia.org/wiki/Clifton_Suspension_Bridge? Each building made in a certain period in a way represents a degree of refinement compared to its predecessors. Better materials, better methods. Buildings in general cannot be "cleaned up" the way code can, where "cruft" today was yesterday's conservative design.
Read a book about the differences in the construction of the World Trade Centers versus the Empire State Building, for example (the WTC has sibling buildings still around using the same techniques, such as the Aon [nee Amoco] Building in Chicago)...
The quoted section in the summary asks if we could imagine this in other engineering disciplines. As the rest of the summary points out, it happens all the time in microchips. It also happens a lot in civil engineering, including bridge building. Removing things takes work. Unless there's work to be saved by doing it, or some way to profit from selling what's removed as scrap or it's a safety issue to leave it most engineers won't remove old parts of a structure. Consider underground pipes. How often are they removed when they're replaced? If the new ones are being laid down where the old ones went, they'll be replaced. Otherwise, 90% of the time they'll just leave the old ones there. Same goes for just about everything. Old installations of any kind are full of stuff that no longer serves any purpose. Brackets and supports for heavy equipment that isn't used anymore, old wiring and panels, concrete slabs that something mystery object used to sit on, etc. When was the last time you saw anyone take away some 30 ton piece of equipment then pay more money to have the floor where it used to sit un-reinforced? Now, sometimes they do. Usually it's when the place is being sold and the new owners are re-modelling. Other times the owners do decide to do a major cleanup. That's exactly what's being done here with libreoffice. Makes it no different than any other engineering discipline then.
Incidentally, if it's truly "dead" code, then it shouldn't actually be compiled, so it's not like the bridge engineer left in a bunch of extra girders, it's more like he's keeping addendum 6-c to revision 12b of the plans for section 3 in the same file cabinet as revision 13 rather than shifting it to a storage box and warehousing it.
Human DNA (and just about every other species as well) is full of things like inactive duplicate genes (some with slight alterations), pieces of old retroviruses, and other mutations and replication errors that have been "commented out". Plus a whole lot of sequences which we don't know what they're good for yet.
I've seen chemical plants built with millions of dollars worth of unnecessary piping and valves, because the project timeframe meant that it was cheaper to install extra connections that might never be used and save engineering time than waste time re-engineering it.
If removing unnecessary items can save thirty thousand dollars (say) at the cost of three days, removing the cruft is only worth it if the delay costs less than ten thousand a day.
The real problem here probably has to do with shared libraries. If you have a function in a shared library with external visibility, the compiler can't remove it, unless it is doing whole program optimizations across all of the programs, and I doubt the LibreOffice builds are doing that.
LibreOffice/OpenOffice.org Writer has usually been good at handling traditional .doc files. (OO got much better when early 2.x versions came out) I'm usually able to share these documents with Word users and make changes without any major issues.
Docx is a whole different story. I recently opened a moderately complicated docx in OO Writer. This document had one of those auto-generated table of contents that corresponded to section headings, several embedded pictures, a few tables, and lots of lists. While Writer would let me see what was in the document, the editing capability was completely shot to hell. Lists were broken, the table of contents was a read-only object that Writer wouldn't (or couldn't) let me change, style/formatting was glitchy in general, and track changes was broken. Converting that document to another format just made things worse. Don't even think of using OO/LO with Docx files unless the only thing you have to do is read them.
"It is a denial of justice not to stretch out a helping hand to the fallen; that is the common right of humanity."
Except building a house is a one time endeavor. A better analogy would be to build a house on the foundation of another house and then remodel it a dozen times and then add on a few additions. Soon there after divorce your spouse and find another to guide the new additions and find another site upon which you can move that house to and hopefully not have to deal with that awful foundation.
Intel's microcode to support 16-bit protected mode became obsolete as soon as the 80386 was released, but they had to support it for backward compatibility, in case someone tried to install Windows 3.0 on an IBM AT clone, for instance. Probably that microcode has been carried forward ever since. Also, there are a lot of CISC instructions such as SCAS* with the "REP" prefix which were heavily used in assembly language in the eighties, but which are now deprecated and typically slower than the RISC-style replacements.
If it is a house that I have owned, it would be Pez dispensers. Whenever we do remodeling, we make a point to slip a pez despenser into the walls. My wife and I figure that some day a long time in the future, someone will have a mildly amusing story.
Of course, that behavior is quite similar to what happens when you open the moderately complex docx document in Word.
Faster! Faster! Faster would be better!
I am not a Microsoft fan, but Windows 7 is actually a very well-written OS, in my experience. If you have lots of RAM then it uses it, there's no sense in having 8GB of RAM if it's only using 250MB and paging the rest of what it needs.
As a point of reference, have a look at this article. If you only have 512MB of RAM then Win7/64 will only use about 200MB of RAM.
One thing I know, and that is that I am ignorant...
but recent (3.x) versions of OpenOffice ate my kids documents. It really sucked. From what I can gather it's a known bug in the document recovery module that hasn't been fixed to this day. The program crashes, writes a blank document out as the 'recover' document, then cheerfully overwrites all your original file and any of the automatically made backups. I suppose that somewhere along the line there was some user error. My kid probably could have said 'no' to something and stopped the whole mess. But seriously, she shouldn't have too. I've got a 500 frickin' gig drive in her machine. The biggest word doc I've ever seen in my life was 5 megs (mostly pictures). Why the hell do we still delete shit? Just make a huge undo buffer or something. I've got half a fscking terabyte. Come on OO.org, just use it already!
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
If you have newspaper or other similar material in your walls, which wasn't processed and designed as insulting filler, I have one word for you: mold.
You'd better know.
Actually I've found LO/MS Office to be pretty much mutually exclusive when it comes to any complexity of formatting. This is why i give it to home users that don't have kids or who just has young kids but not those with HS or college kids because if the teacher is using MS Office anything they give to you will be word salad in LO and anything you give to them will be word salad in MS office. And why does so many LO users find that hard to accept? they are trying to reverse engineer a binary format without jack shit for source code to look at, the fact they can open up as many as they can is a miracle and they should be applauded for it. But you take a complex doc with headers, footers, tables, etc and while i've had no problem opening that in any version of MS Office I have from 2k-2K7 that same doc will take a big old shit in LO. by the same token i make the same doc in LO with the same headers, footers, and tables and MS office will either crash or output gibberish. Does that make one better than the other? noooo, it just makes them incompatible.
That is why I give away LO to home users like I said but don't even mention it to SOHOs and SMBs because if you are having to share with MS Office users it can quickly become a mess. So I'd say it is just using the right tool for the job, LO when its home users who'll mainly be printing or not sharing with businesses, MS office for business and HS or above education.
ACs don't waste your time replying, your posts are never seen by me.
Has happened before. Bill Atkinson wrote -2000 lines of code whilst working on a graphics toolbox at Apple.
No, a better analogy is to build a house (full of extra materials as the parent said), and then use a giant replicator machine to mass-produce the house, almost instantly, and create thousands and thousands of new homes using that house as the basis. The wasted material in the one house is bad, but not that bad because it's one house, and it takes extra time and labor to do it more efficiently. But multiplied across thousands of identical copies, that wasted material adds up a lot. Plus, it's inefficient and you could have a better-performing house by doing a better job with the small details (better at energy efficiency for example). The slight increase in energy efficiency with that one house, realized by spending a bunch of extra time and effort removing wasted materials and doing a better job with various small details (like making sure the house wrap is applied extremely well rather being hurried and missing some staples in important places), won't amount to much with just the one house. However, multiplied across many thousands of houses, those energy savings add up to a lot.
The fact that software is easily and quickly replicated with perfect precision and little or no effort or time really makes it hard to make good analogies for it without resorting to Star Trek-style replicators; it's the only technology we have that's like that. And because it can be and is copied so easily, very different dynamics apply to it than to many other fields of endeavor.
And THIS gets modded "informative"? Did someone give the trolls extra mod points this week? Did I miss a memo? Because I'm sitting here with not one but TWO Win 7 X64 machines running, one an AMD EEE netbook with 8Gb, the other my AMD 6 core Thuban desktop, also with 8Gb, and I'm using less than 600Mb with the basic theme on the netbook and just a hair under 980Mb on the desktop and that's with Aero and all the bling cranked. You are probably using an old tool that counts cache as "used" memory but since Windows dumps the cache if ANY program requests the memory that simply isn't useful anymore. BTW your old XP box uses so little RAM because it'll dump to paging even if there is plenty of memory free which is just fricking stupid, the RAM is using the same voltage regardless so why not use it to speed things up?
But if you are seriously looking at 2gb and aren't trolling you need to have that thing checked, because either you have more bugs than a Bangkok Whore or one of your apps is leaking memory like a sieve.
ACs don't waste your time replying, your posts are never seen by me.
If you have newspaper or other similar material in your walls, which wasn't processed and designed as insulting filler
What material in your walls could be more insulting than newspaper?
A lot of European cities were rebuilt on the same place over and over again, after wars, natural catastrophes, crazy rulers,...
There are layers and layers of building foundations and walls under the modern (and especially not so modern) buildings. It's not uncommon constructions to be stopped for excavations to take place.
In love, war and slashdot discussions, everything is allowed.
"WORKSFORME"
The most unhelpful response to a bug report ever.
But very helpful response on trolling.
In love, war and slashdot discussions, everything is allowed.
Well, there are a variety of fiber, composite and other materials with higher R-factors per volume, but that's beside the point.
Newspaper as in processed recycled newspaper bought as insulation from Home Depot or the equivalent is one thing. Stuffing newspapers into your wall after receiving them in the post and reading them (a common practice) is quite another. The latter retains moisture and can lead to mold, rotting and structural damage, just to start with the most obvious problems.
And this, boys and girls, is how we end up with Windows 7/64 guzzling two gigs of memory after start-up.
RAM is there to be used, not hoarded.
In short, Windows 7 (unlike XP and earlier Windows versions) goes by the philosophy that empty RAM is wasted RAM and tries to keep it as full as possible, without impacting performance.
Windows 7 memory usage: What's the best way to measure? [Feb 25, 2010]
Slashdot, home of the Linux Cocksucker Boy Toys.
Can you, please, post us a link to the Linux Cocksucker Boy Toys source code.
In love, war and slashdot discussions, everything is allowed.
No, it's not. Windows 7 will use as little as 200MB of RAM if you only have 512 physically available. You're misunderstanding what's actually going on as you fret over megabytes in Task Manager.
"Wooooosh"
I don't see any problems with Windows 7. With my 8gigs RAM, it still uses 3.x GBs (including the browser, chat clients, video players) etc with more than half of of the memory still available for caching. The OS itself is working great. IIRC, uptill winXP, i had to do a clean install every few months to take care of all the slow downs/viruses - Vista was a breeze (still can't compute all the hate it got [yes, you had to run it on a bit faster machine but that's not the problem]) , win7 is a win.
Building a house isn't a one-time endeavor. Much like code, houses are never 100% finished. They're frequently repaired and less frequently remodeled, renovated, or expanded. If you look at photographs of the same house over the span of a century or more, it's sometimes hard to believe that the final version is the same building as the original. And when people work on their houses, they usually go for the most cost effective approach, even if that means leaving no longer used stuff in place because it would be more expensive to rip it out. Look inside the wall of an old house, and you'll be amazed at the stuff you find.
There's no point in questioning authority if you aren't going to listen to the answers.
That's nothing. Whoever built the wall that exists between my office and the dining room left inside a leather dog collar and a half-dozen pork (I think) rib bones.
We've also found a cast iron floor lamp inside of a wall, as well as several hundred copies of the Saturday Evening Post that are positively impossible to drill through.
Pez dispensers seem so...basic.
Kid-proof tablet..
"...and it probably isn't because the code base is especially bad."
Yes, it does mean that. Thousands of lines of deprecated code implies it was written in a sloppy and disorganized way and this is not only an indicator but, I would argue, a definition, of a terrible code base.
I find your reply insulting.
Exactly. Unused RAM is wasted RAM. If nothing is using my RAM, I hope Windows 7 is using it for cache.
Actually, building materials (at least here in the USA) are dirt cheap. Labor by far is the biggest factor in a house's cost. There are some exceptions, like appliances, cabinets, granite countertops, plumbing fixtures, etc., but things like framing, drywall, nails and other fasteners, even electrical outlets (except the GFCI ones) are all dirt cheap. That's why there's waste; the contractor doesn't care if his workers waste $2 worth of materials as long as they're fast. However, when the plumbers are putting in expensive polished faucets, they're probably more careful since replacing one of those is worth several hours of labor.
The factory where I work which must be over 60 years old, there are redundant cables and pipes everywhere. It would cost far too much money to figure out what is redundant and then remove it without disrupting anything else.
QA? ...
Holy fuck. There's light.
Deleted
You've probably got a dead cat. Sometimes they get stuck between the layers. In old houses they were sometimes put there intentionally as protection against witches.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Good analogy.
But Libreoffice still uses Java. I don't see that fitting into your analogy, because the Java dependency really has to be removed. It was put there only because OpenOffice was in the hands of Sun. Now Java is in the hands of Oracle. The Java dependency has to go.
The design aesthetics are probably different because they intentionally make it different.
For most car brands, you can take the earliest cars and still see some of the design language reflected in the current models. In particular the front grills are usually easiest to recognize. This is done intentionally by the designers, even though nowadays car designers have no real connection to the brands; modern Lambourghini's are designed by a Dutch guy and Pininfarina (design studio for most of the Ferrari's) designs cars for other brands as well (i.e. Volvo, Peugeot, Ford).
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
"WORKSFORME" is a perfectly helpful response to "ITDONTWORK".
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Actually it was a whole $350 with 8Gb from Newegg and a carrying case from Tigerdirect, so nope, not expensive at all. of course i lucked out as i ordered mine 2 weeks before the Thailand flood, now the same unit is a whole....let me look...$415, not really that big a difference, but of course you'll have to add the $30 for 2 4Gb sticks like i got.
Anyway here is the link and if you'll check the comments below the first poster links to the 8Gb RAM upgrade. I can't say enough good things about this netbook, it gets 6 hours plus playing 720p video, gets a hair over 8 in Expressgate surfing and listening to music, has enough GPU to play L4D and GTA:VC, and has enough CPU muscle i'm using it to edit multitracks and even as a custom drum machine using hydrogen and running it into the mixer, great for having more realistic drums when laying down scratch tracks. Its got plenty of space, doesn't get hot, only weighs 3 pounds, and if you want even longer battery life there is a 10 cell you can pick up but personally 6 hours plus is plenty.. Oh and it comes with Win 7 HP X64 ready to go and swapping out the RAM is easy peasy. After I sold the 2Gb stick that came with it for $20 the RAM boost was a grand total of $14 and it was only $6 difference between 6Gb and 8Gb so I figured WTF ya know? Having that much RAM means that Superfetch has ALL my apps preloaded into RAM, its sweeet.
so if you or anyone you know wants a netbook I'd say go for it, its a great lightweight unit that kicks ass on the road. It even has a USB 3 port with charging capability so if your phone dies you can use the EEE to give it a quick charge. Nice.
ACs don't waste your time replying, your posts are never seen by me.
The only people bashing CISC are sheltered academics who have never been out in the real world or have heard of benchmarks. On my Core i7, for example, the benchmarks show that string instructions usually are the fastest way to do things.
A basic rep stos yields 25 GBps. So does the fastest recommended SSE method using movntps and prefetch. A RISC-style fill loop only manages 12 GBps. You can improve its performance by unrolling the loop four times, getting the same 25 GBps as a string instruction with a lot more code.
With a copy, rep movsl and movsq gives 3.2 GBps. movsb gives 2.5. A RISC-style copy loop gives 3.2 GBps. The fastest SSE copy loop with movntps and prefetch gives 6.4 GBps, at the expense of code size.
As you can see, for most applications it is a very good idea to use the string instructions. An SSE optimized copy may be useful if you're copying large blocks somewhere; otherwise don't bother. Outside tight loops, reducing code size will improve performance much more than directly trying to make it fast.
Bandwidth and memory are both pretty cheap
I don't know what kind of computer without a memory hierarchy do you have, but my instruction caches haven't been exactly cheap.
Ezekiel 23:20
What material in your walls could be more insulting than newspaper?
An immured scientologist proselytizer that once came to your house to annoy you, only to never leave your house alive again?
Ezekiel 23:20
Many its GUI controls are using very bad confusing abstractions. For example, audio, networking, etc.
They are necessary abstractions because these subsystem themselves are abstractions.
If you want confusing audio subsystems, look at the mess in Linux right now.. most Linux installs literally have multiple audio subsystems that can output to each other in very confusing master/slave relationships.
"His name was James Damore."
Having had to design changes to existing building systems that had lots of unused piping, ductwork, etc., I would say it's well worth the cost to get rid of obsolete work, rather than dealing with confusion figuring out what is active and what is necessary, or trying to snake new services through the existing congestion unnecessarily. It is relatively inexpensive to remove accessible items at the time they are made obsolete; the problems occur later when no one remembers what a particular item is for or whether it is still active.
Actually the answer is YES, yes it can, with the free converter pack. And I can testify that it works because my oldest always sends me DocX files from his Office 2K10 (He ALWAYS forgets to send as doc) and they open and display just fine. Now granted he's only a junior so his DocX files are just basic header and footer, no embedded tables or anything yet so I can't tell you how it will do with something fancy, but I CAN tell you that it opened a 15Mb business proposal I did with 4 other guys that had headers, footer, embedded tables, and frankly that amazed the hell out of me because I had 2K, one had 2K3, one had 2K7 and one had (2K6?) whatever the number for Office for Mac was around 2007.
So I can say that honestly I've never had a problem with Office since i started using it regularly with office 2K. Now maybe i just haven't tripped over the edge cases, who knows, but sharing both doc and DocX in 2K has not been a problem with the Office converter pack.
ACs don't waste your time replying, your posts are never seen by me.
That would be relevant if the unused code was very tightly mixed with the used code.
In this case, if you look at the way they detect unused code, you'll see that all the code that was removed consists of whole methods and sometimes whole classes. This means that the vast majority of the code that was removed would probably never be loaded in the instruction cache anyway -- very small methods tend to be inlined by the compiler and so don't cause surrounding (and potentially unused) code to be loaded to the cache.
This is true in Europe too. I'm in Scotland. I live in a small but comfortable house I built for myself on my own land last year. It cost in total more than I earn in one month, but less than I earn in two. I'm a senior geek, I get a good wage - but I'm not a banker or a pop-star.
What makes housing expensive is partly labour, but it is mainly that planning policy creates a form of artificial scarcity, and partly also that government support for home ownership creates a speculative bubble, further inflating the cost. Housing is not intrinsically expensive.
I'm old enough to remember when discussions on Slashdot were well informed.
Frankly I don't know what's inside my walls, and I'm not sure I want to know.
Asbestos, lead, dead mice, and razor blades. (Old bath room cabinets used have a little slot to dispose of razor blades.)
Function level linkers have been around for a long time now. None of that dead code will end up in the binary.
The problem with this is that I use task manager to see how close to the limit my system is, and to gauge how much memory to get on a system. It's all well and fine to use free memory for caching disk or whatever, but I'd like my "gas gauge" back please! Give me a memory monitor that actually tells me how much memory I could use for my apps, and how close to the edge I am.
As things are, you need Process Explorer for that, and a decent understanding of virtual memory management in NT to understand what it actually tells you.