Я нахожу эти полезные
http://accelero.codeplex.com/SourceControl/changeset/view/22633#290971 http://accelero.codeplex.com/SourceControl/changeset/view/22633#290973 http://accelero.codeplex.com/SourceControl/changeset/view/22633#290972
, TickTimer является сокращением вниз копия Секундомера, который запускается, когда он создается и не поддерживает перезапуск. Это также уведомит Вас, если текущие аппаратные средства не будут поддерживать синхронизацию высокого разрешения (Секундомер глотает эту проблему)
, Таким образом, это
var tickTimer = new TickTimer();
//call a method that takes some time
DoStuff();
tickTimer.Stop();
Debug.WriteLine("Elapsed HighResElapsedTicks " + tickTimer.HighResElapsedTicks);
Debug.WriteLine("Elapsed DateTimeElapsedTicks " + tickTimer.DateTimeElapsedTicks);
Debug.WriteLine("Elapsed ElapsedMilliseconds " + tickTimer.ElapsedMilliseconds);
Debug.WriteLine("Start Time " + new DateTime(tickTimer.DateTimeUtcStartTicks).ToLocalTime().ToLongTimeString());
произведет это
Elapsed HighResElapsedTicks 10022886
Elapsed DateTimeElapsedTicks 41896
Elapsed ElapsedMilliseconds 4.18966178849554
Start Time 11:44:58
, DebugTimer является оберткой для TickTimer, который запишет результат для Отладки. (отметьте: это поддерживает Доступный шаблон)
, Таким образом, это
using (new DebugTimer("DoStuff"))
{
//call a method that takes some time
DoStuff();
}
произведет это к окну отладки
DoStuff: Total 3.6299 ms
, IterationDebugTimer для синхронизации, сколько времени это берет, чтобы выполнить операцию многократно и записать результат для Отладки. Это также выполнит начальную букву, выполненную, который не включен, чтобы проигнорировать время запуска. (отметьте: это поддерживает Доступный шаблон)
, Таким образом, это
int x;
using (var iterationDebugTimer = new IterationDebugTimer("Add", 100000))
{
iterationDebugTimer.Run(() =>
{
x = 1+4;
});
}
произведет это
Add: Iterations 100000
Total 1.198540 ms
Single 0.000012 ms
Я взломал это, выполнив следующие действия:
int vcStackSize = [[self.navigationController viewControllers] count];
WEViewController* previousController = [[self.navigationController viewControllers] objectAtIndex:vcStackSize - 2];
NSString* previousTitle = [previousController title];
UIFont* font = [UIFont boldSystemFontOfSize:12];
lw = [previousTitle sizeWithFont:font].width + 26;
Противно, но работает