Это не очень поможет вам в C #, но инструменты OS X Shark (поставляются с инструментами разработчика от Apple) являются лучшими инструментами профилирования, с которыми я когда-либо сталкивался. Практически весело использовать!
Что касается профилирования, есть два подхода. Во-первых, вы должны понять программное обеспечение. Особенно структуры данных. Не начинайте оптимизацию, пока не поймете это сначала.
Во-вторых, вы должны измерить (что, похоже, вы собираетесь сделать). Мой инстинкт инстинкта вводил меня в заблуждение почти всегда; места, которые я бы посчитал второстепенными, занимают время. Это также означает, что когда вы оптимизируете, вы всегда оптимизируете для определенного набора тестов, которые вы выполняете. Выбор таких случаев важен.