Managed Code Performance on Xbox 360 for XNA: Part 2 – GC and Tools

…continuation of Part 1, it can be found here   Memory and Garbage Collection   One common concern for game developers is the garbage collector. By design, GCs trade off determinism for convenience. Luckily, keeping the GC predictable is fairly straightforward. Two variables to pay attention to are: How long a GC is taking (aka. GC…


Managed Code Performance on Xbox 360 for XNA: Part 1 – Intro and CPU

Introduction Now that XNA Game Studio Express 1.0 is out, it’s time to start writing managed code for the Xbox 360. Performance is a popular topic that’s been on this blog and the Xbox is likely no exception. The bottom line for gaming performance is framerate. The de facto framerate standard these days seems to…


NetCF 3.5’s Finalizer Log

The .NET Compact Framework has had several loggers (error, interop, loader, and networking) in previous versions.  NetCF 3.5 introduces the finalizer logger, which is useful for performance tuning your app by identifying which objects are not being Dispose()’d before being discarded for the garbage collector.  This post discusses this logger, how to enable it, use…


David talks about serializing fields as XML node attributes

There are times that you may wish to serialize one or more fields as attributes on the object’s node (ex: reduce the size of the XML).  By decorating the TestID field with an XmlAttribute attribute, the TestID field[XmlAttribute()]public Int32 TestID;now becomes an attribute Read more here


Dan details .NET Compact Framework CIL OpCode support

The instruction set for a CLI compliant execution engine is described by ECMA’s CLI Partition III (CIL Instruction Set). The Compact Framework execution engine implementation supports most, but not all, of these instructions. In general, the decision to support an opcode was based on whether it could be generated by one of the compilers supported…


David talks about filtering TextBox control input

I was talking with Mark Prentice today and we were looking at filtering a TextBox control so that it only accepted numeric characters.  As it works out, this is a very easy thing to do with the .NET Compact Framework.Read more here


David demonstrates the MDbg X command

When debugging using command line tools, one of the most challenging tasks is getting the fully qualified names of functions correct when setting breakpoints.  Namespaces can get long (as you will see in my examples) and the casing of names must be 100% accurate.  X makes this much much easier, as we will see.Read more…


Dan discusses extending .NET Compact Framework controls

One of the comments I’ve heard frequently since I began working on the CF GUI base class libraries (BCLs) is “The .Net Framework has an X property (or method or event) on control Y. I really need it, but the CF version doesn’t have it. Why?” Read more here


Platform detection III: How to detect a touch screen on Windows CE in .NET CF

Pocket PC’s have touch screens.  Smartphones don’t.  While it is straightforward to determine which of these a Windows Mobile device is, there are Windows CE devices that are neither.  Some may offer touch screens while others don’t.  Since a touch screen is really what you may be after (to determine whether you can expect a…