That is one strange article. Now, I haven't tried any of what the
author recommends, but my immediate reactions are as follows.
First your question: why is parenting better than adding to the control
collection? Note that the author didn't say "using collections": he's
talking about the relative speed of two ways of adding a control to a
container. You can say:
container.Controls.Add(control);
or
control.Parent = container;
Apparently (according to the author, at least), the latter is faster
than the former. Why? You'd have to look at the Framework code to know
for sure. My guess is that he just tried it and found that one was
faster than the other.
As for his assertion that instantiating a Rectangle and setting Bounds
is faster than setting Location and Size separately from a Point and a
Size respectively, the only thing I can think of is that the savings
must be within the Bounds property code itself, rather than
instantiation of one value type versus two. After all, the compiler
_ought_ to be able to figure out that new Point(10,20), new
Size(72,23), and new Rectangle(10,20,72,23) are all effectively
_constants_ and can be instantiated at compile time. (Note that I
haven't tried this... yet.) More likely the savings is in setting the
location and size all at once rather than in two steps.
Finally, notice the title of this article: we're talking Compact
Framework here, which means running on cell phones and smart
refrigerators. The kind of tweaks this guy is talking about will _not_
make any noticeable difference on a PC, and probably not even on a PDA.
We're talking very low-powered, low-resource devices before you'll see
any difference in your app from doing these kinds of optimizations.
If you do this for your regular-Framework, desktop PC app, all you'll
do is lose your ability to use the Visual Studio Designer, all for no
noticeable improvement in performace. In the end, it all comes back to
the cardinal rule of optimization: start by optimizing your design, not
your code. Optimize your code _only_ after you've used a profiler and
identified a bottleneck. Then you fix just the bottleneck. Anything
else is a massive waste of time, unless your boss is willing to pay for
your bragging rights.