Monday, October 03, 2005

Rude AppDomain unloads

Joe Duffy has a post on avoiding and surviving rude AppDomain unloads. This is a useful post and all, but the highpoints are the following 2 quotes:

... if you piss SQL Server off by taking too long in one of your finally blocks (for example), it will get a tad snippy
and:
It uses a great method RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup located in the System.Runtime.CompilerServices namespace. We call it SRCSRHECWGC—pronounced “shreek shreck woogy-cuck”—for short around here.
Mmmm shreek shreck woogy-cuck.

[Listening to: Eminem - Kids]

Friday, September 23, 2005

Sizing memory for virtual machines appropriately

The Virtual PC Guy doles out some guidelines for appropriately sizing memory of virtual machines

I had always (mistakenly) believed that I should be throwing as much memory at my VPC as possible. I have 1.5GB of which I have 1GB given to VPC. Prior to that I had 512MB with 256MB for VPC which was quite slow. Even with more memory I haven't noticed a huge performance gain. Perhaps I've just been starving out my host system.

Good thing the memory was cheap.

[Listening to: Powerman 5000 - Son of X-51]

Monday, September 12, 2005

Shared Services

From Larry Osterman - a description of
Shared Services and why they're important.

I gotta play with this some day.

Updated: Larry posted a second entry on a clever trick to debug shared services. In a nutshell:

Split a shared service into it's own:
C:\>sc config type= own
And put it back again:
C:\>sc config type= share
[Listening to: Black Sabbath - Trashed]

Wednesday, September 07, 2005

On Threads and WinDBG|SOS

Yun Jin posted a series of articles on Thread, System.Threading.Thread, and !Threads that you can find here:


[Listening to Sister Sledge - He's the Greatest Dancer]

[Ed: 7-Aug-2006 - Finally fixed goofy list formatting]

Tuesday, September 06, 2005

Thank you Scott for getting rid of those #$@#$! binding logs

For months now I kept getting assembly binding info being dumped into my c:\temp directory for every .NET executable on my machine. As I use c:\temp for (surprisingly enough) temporary files it was getting quite aggrevating having to constantly delete all those .exe directories.

I vaguely remember enabling this but I couldn't remember/find what I had done so I could shut it off.

Fortunately, I happened across this blog entry from Scott Hanselman about assembly binding redirects which pointed me to the right place:

Change the registry value HKLM\Software\Microsoft\Fusion\ForceLog to 0.

Soooo much quieter. Ahhh.

[Listening to: Kiss - Cold Gin]

Monday, August 22, 2005

Wednesday, August 17, 2005

Magic Numbers for Debugging Memory troubles

I got tired of searching for this each time I needed to so here it is -- the magic memory values when using the debug heap in Microsoft Visual C++ 6.0, 2003 and presumably 2005.

Culled from here and here.

0xBAADF00D -- Allocated by HeapAlloc, not yet used by malloc
0xCDCDCDCD -- Allocated but uninitialized
0xFDFDFDFD -- No mans land. Surrounds allocated block
0xABABABAB -- 2 words following allocated block's no mans land
0xDDDDDDDD -- In the process of being freed.
0xFEEEFEEE -- Freed

[Listening to: Kittie - Suck (Live)]

Windows Message Hooking in .NET

You just never know when you have to get down to the metal and observe/tweak/ambush the windows messages directly. Ben Wu
shows us how with SpyWindowFinalizer. This also gives us a means to detect controls that are not being properly Dispose'd.

[Listening to: Tripping Daisy - Piranha]

Monday, August 15, 2005

Xml Performance Checklist

Atsushi Eno gives an Xml perf checklist.

Don't know how valid/relevent these all are but I've blogged it here for future reference.

[Listening to: Crazy Town - Only When I'm Drunk]

Wednesday, August 10, 2005

Rico Mariani's Performance Tidbits : LogDump: CLRProfiler Log analysis tool

Performance guru Rico Mariani shares his CLRProfiler log post-processor which produces a very useful summary of perf stats.. In case you want to bypass the article (lazy lazy) you can jump to the source code directly.

[Listening to: Led Zeppelin - What Is And What Should Never Be]