Feng Yuan (袁峰)
CLR, Performance, Debugging, Parallel Computing, WPF, XPS, GDI, GDI+, Printing (www.fengyuan.com)
XPS Again
I needed to generate images for an HTML document I'm generating, for which I use create a...
Date: 09/12/2012
Performance Tips: Faster than StringBuilder?
The web has tons of articles about how StringBuilder is much faster than string concatenation using...
Date: 08/14/2012
Performance Tips: System.Text.StringBuilder and String.Concat
Much has been written about the benefits of using StringBuilder over string concatenation. So much...
Date: 08/12/2012
Performance Tips: String.Split
String.Split methods are provided in .Net as a convenient way of dividing string into parts. Here...
Date: 08/12/2012
TextWriter.WriteLine(string, object[]) in less memory, less time
I found myself increasingly generating reports in .csv format, and then use Excel to analyze the...
Date: 08/04/2012
Problem: Better way to remove characters that aren't 32 to 175
There is a question on StackOverflow.com about better ways to remove characters in a string that are...
Date: 07/18/2012
Drawing bearing and distance property line using C#/SVG/IE9/Visio (V2)
Here is expanded version of my little C# program which converts property description in bearing and...
Date: 06/01/2011
Drawing bearing and distance property line using C#/SVG/IE9.
If you read an official property legal desciption, property line are often described using bearing...
Date: 05/30/2011
EWD637: Three Golden Rules for Successful Scientific Research
Here is something I read in graduate school and still thinks about from time to time: Edsger W....
Date: 04/14/2011
Optimization Note (C++) 1: push, pop, call _chkstk
I was looking at assembly code trying to improve an important performance scenario when I found a...
Date: 04/03/2011
Improving CLRProfiler 4: Reducing SampleObject memory consumption by 58%
In the previous three posts, we managed to double the speed of file loading time of CLRProfiler...
Date: 03/27/2011
Improving CLRProfiler 3: Double the speed of profile loading
In the first step of profile-guided optimization, we reduced tatal CPU sample of ReadNewLog.ReadFile...
Date: 03/23/2011
Improving CLRProfiler 2: 19.7% in TryGetValue
Playing with Visual Studio 2010 profiler data Function Code View finds another easy target for...
Date: 03/22/2011
Improving CLRProfiler 1: 8.4% Progress Bar Update
Being a CLR performance dev, it seems that CLR profiler will be a very useful. So now I'm trying to...
Date: 03/21/2011
New Job: CLR performance team
I switched job to CLR performance team last August. Now I'm working on something which has huge...
Date: 03/21/2011
(VS2010 Beta1) Native Parallel Programming: ConcRT example -- Debugging TwentyFour
In a previous posting, we presented a simple C++ parallel program TwentyFour, which is based on the...
Date: 06/22/2009
(VS2010 Beta1) Native Parallel Programming: ConcRT example -- TwentyFour
.code { word-wrap:break-word; margin:10px; padding:10px; border:2px ridge white;...
Date: 06/21/2009
STS: A palindromic word I will remember
Continuing searching palindromic sqaure numbers finds a new record number, a 55 digit parlindromic...
Date: 02/01/2008
A 53-digit Palindromic Square Number
Six years ago I wrote a program to search for palindromic square numbers and other palindromic...
Date: 01/15/2008
XpsStat: A program for gathering statistics information of XPS documents
In the Winhec presentation on XPS document performance optimization, a simple program XpsStat is...
Date: 05/21/2007
XPS Performance
There will be two XPS related sessions at Winhec 2007 tomorrow, focusing on Performance Optimization...
Date: 05/16/2007
XPS at Winhec 2007
Today (May 15, 2007) is the first day of Winhec 2007. If you're application developers,...
Date: 05/15/2007
A Simple XPS Decoder in C++
If you write programs in C#, Windows Presentation Foundation in .Net 3.0 provides quite nice API to...
Date: 04/22/2007
Another Ph.D for Bill Gates
On April 19th, Bill Gates has been awarded a honorary Ph.D degree by Tsinghua University...
Date: 04/19/2007
Something useful from 'junk' mails
With a high school junior in the house, we're receiving tons of 'junk' mails from colleges these...
Date: 03/28/2007
XPS document with 100,000 pages?
Once a simple document format like XPS is created, it takes on a life of its own. Seeing the beauty...
Date: 03/21/2007
Source code for Windows Graphics Programming: Win32 GDI and DirectDraw
Source code for Windows Graphics Programming: Win32 GDI and DirectDraw used to be on...
Date: 03/21/2007
Convert XAML Flow Document to XPS with Style (multiple page, page size, header, margin)
XPS is a fixed document format in which pages are pre-formated to a fixed page sixe. On the opposite...
Date: 03/10/2007
Anatomy of STL Vector: Data Size
In the last post, we discussed the cost of using STL vector to module size. Now let’s take a look at...
Date: 03/04/2007
Anatomy of STL vector: Module Size
If you need a dynamic array in C++, a widely used class is the vector template class in STL. There...
Date: 03/04/2007
Printing documents to Microsoft XPS Document Writer without user interaction
Now that the XPS storm has been started, people are generating XPS documents from all kinds of...
Date: 02/24/2007
Modifying XPS Document: Add Watermark
Windows Platform Foundation has provided easy APIs and solutions for XPS document generation,...
Date: 08/23/2006
Trobleshooting Printing Fidelity Problems
It's not uncommon to have a print-out from your printer not matching what do you see on screen....
Date: 08/08/2006
GDI Font Installation and Printing
I learned something new about GDI font installation and printing recently. So if you're use...
Date: 08/08/2006
XPS at WinHec
There is a large presence of XPS at Winhec this year, which makes Global Graphics' booth banner very...
Date: 05/24/2006
Anatomy of Radial Gradient Brush
WPF(Windows Presentation Foundation) and XPS (Open XML Paper Specification) supports five types of...
Date: 05/09/2006
The difference between an amature and professional plumber
An amature plumber makes multiple trips to Home Depot to buy supplies, a professional plumber gets...
Date: 05/06/2006
Bought a new computer: HP Media Center PC m7334n with AMD Athlon 64 X2 3800
My desktop computer at home is about five years old, so I thought it's time to buy myself a new...
Date: 03/20/2006
The benefit of having your own office
The benefit of having your own office, or at least one of them, is that you can have your own $29...
Date: 03/02/2006
Know a good book on performance?
If you know a good book or more on performance, please recommend. I'm aware of the following books...
Date: 03/02/2006
Windows Graphics Programming: Win32 GDI and DirectDraw (ISBN 0130869856) gets reprinted
Just worked out a deal with the publisher. Windows Graphics Programming: Win32 GDI and DirectDraw...
Date: 02/08/2006
Zoran announces XPS rendering support for printers
Sunnyvale, Calif. - January 17, 2005 - Zoran Corporation (Nasdaq: ZRAN) announced that its IPS/XPS...
Date: 01/19/2006
Optimize XPS markup
XPS is hot, so naturally more and more applications will be generating XPS. If your application has...
Date: 01/18/2006
Proposal of purchase for a tiny piece of real estate
Just finished writing first draft of a proposal of purchase, for a tiny piece of real estate, 8...
Date: 01/17/2006
Seven Year Itch
Seven years ago, I was working for Hewlett-Packard on its inkjet printer drivers. Having worked on...
Date: 01/05/2006
Native Office Support for XPS Annouced
Office just annouced native/direct support for XPS document in Office 12. Read more about it: Jeff...
Date: 10/29/2005
Personal Computers 30 Years Ago
Last week, close to 20,000 Microsoft employees gathered together at Safeco field to celebrate...
Date: 09/27/2005