Quote:
Originally Posted by AKAJohnDoe
The space on your hard drive is finite. Therefore, data and free space are the same thing. Only difference is your perception of how the finite space resource is being utilized.
|
I see what you are saying, but in this case a portion of WinSXS represents "dead" space. It is space occupied by a copy of a DLL that will never ever be used. It is not free space and it is not data space any longer. It is space lost.
Quote:
Originally Posted by AKAJohnDoe
If data utilization is growing it is most likely restore points and/or indexing.
|
This has nothing to do with indexing or restore points. No, we are talking SPECIFICALLY about the space occupied by WinSXS. Take a look on your own machine. Look at C:/Windows/WinSXS note its size relative to the size of your entire Windows directory.
This quote from wikipedia might help clarify what WinSXS is for:
Quote:
|
A common issue in previous versions of Windows was that users frequently suffered from DLL hell, where more than one version of the same Dynamically Linked Library (DLL) was installed on the computer. As software relies on DLLs, using the wrong version could result in non-functional applications, or worse. Windows XP solved this problem by introducing side-by-side assemblies. The technology keeps multiple versions of a DLL in the WinSxS folder and runs them on demand to the appropriate application keeping applications isolated from each other and not using common dependencies.
|
And the issue with the implementation is that once a version goes in, there appears to be nothing to ever remove it. Lets say for example you have a program called "WidgetMaker". It registers a DLL called "WidgetFoo.DLL" as version 1.23. Six months latter, you get another app "WidgetStuffer". It includes a new copy of WidgetFoo.DLL as version 2.3. In the old DLL hell days the new one overwrote the old one even if WidgetMaker would not work with the new dll. WidgetStuffer would work but WidgetMaker was caught in DLL hell.
Enter WinSXS. It would keep BOTH copies of WidgetFoo.DLL and when either WidgetMaker or WidgetStuffer needed WidgetFoo.DLL the proper version would be given to the app. Cool!!!! Or so we thought. Now for the problem. Let's say you get a new version of WidgetMaker and with it comes WidgetFoo.DLL version 2.5. It appears that there is nothing to tell Windows that you now no longer need WidgetFoo.DLL version 1.23, even though it is now an orphan. You will have all three instance of the dll in WinSXS. So WinSXS grows and never shrinks.
As I said earlier, I have 17 versions of the IE antiphising DLL, despite the fact that I have only one instance of Internet Explorer. And since Internet Explorer is the only application that would ever use this IE antiphising DLL, how could I possibly ever need 17 versions? If I did a clean install right now, I would wind up with only one instance of this DLL.
WinSXS fixed one big headache we had, but at the expense of eating away at disk space that we can only recover by a clean install.
Browse your own WinSXS folder and you will see what I mean. Expand the filename column so you can see the amount of redundant space being occupied. Now mind you, some of this is NOT redundant and is necessary to combat DLL hell. I understand that. As a programmer myself, trust me, I know all to well the pain of DLL hell. But, what I'd like to see is a utility that enumerates the application manifests and removes the orphans in WinSXS.
Gary