https://msdn.microsoft.com/zh-cn/library/vstudio/system.diagnostics.stopwatch(v=vs.100).aspx
using UnityEngine;
using System.Collections;
using System.Reflection;
using System;
public class ReflTestDemo : MonoBehaviour {
// Use this for initialization
void Start () {
int start = System.Environment.TickCount;
fun ();
int end = System.Environment.TickCount;
Debug.Log("strat - end :" + (end - start));//单位毫秒
/*
Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。
在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。
Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。
使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。
通过属性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值。
当实例正在运行或已停止时,可以查询运行时间属性。
运行时间属性在 Stopwatch 运行期间稳固递增;在该实例停止时保持不变。
默认情况下,Stopwatch 实例的运行时间值相当于所有测量的时间间隔的总和。
每次调用 Start 时开始累计运行时间计数;每次调用 Stop 时结束当前时间间隔测量,并冻结累计运行时间值。
使用 Reset 方法可以清除现有 Stopwatch 实例中的累计运行时间。
*/
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start(); // 开始监视代码运行时间
fun ();
stopwatch.Stop(); // 停止监视
/*
Days 获取当前 TimeSpan 结构所表示的时间间隔的天数部分。
Hours 获取当前 TimeSpan 结构所表示的时间间隔的小时数部分。
Milliseconds 获取当前 TimeSpan 结构所表示的时间间隔的毫秒数部分。
Minutes 获取当前 TimeSpan 结构所表示的时间间隔的分钟数部分。
Seconds 获取当前 TimeSpan 结构所表示的时间间隔的秒数部分。
Ticks 获取表示当前 TimeSpan 结构的值的刻度数。
TotalDays 获取以整天数和天的小数部分表示的当前 TimeSpan 结构的值。
TotalHours 获取以整小时数和小时的小数部分表示的当前 TimeSpan 结构的值。
TotalMilliseconds 获取以整毫秒数和毫秒的小数部分表示的当前 TimeSpan 结构的值。
TotalMinutes 获取以整分钟数和分钟的小数部分表示的当前 TimeSpan 结构的值。
TotalSeconds 获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值。
*/
System.TimeSpan timespan = stopwatch.Elapsed;
double hours = timespan.TotalHours; // 总小时
double minutes = timespan.TotalMinutes; // 总分钟
double seconds = timespan.TotalSeconds; // 总秒数
double milliseconds = timespan.TotalMilliseconds; // 总毫秒数
//打印代码执行时间
Debug.Log("hours " + hours);
Debug.Log("minutes " + minutes);
Debug.Log("seconds " + seconds);
Debug.Log("milliseconds " + milliseconds);
}
// Update is called once per frame
void Update () {
}
void fun()
{
string strText = "zhaoguanghui";
BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
Type t = typeof(ReflTest1);
MethodInfo[] mi = t.GetMethods(flags);
System.Object obj = Activator.CreateInstance(t);
foreach (MethodInfo m in mi)
{
if (m.Name.StartsWith("Write"))
{
m.Invoke(obj, new object[] { strText });
}
}
MethodInfo mMy = t.GetMethod("MyWrite");
if (mMy != null)
{
mMy.Invoke(obj, new object[] { strText });
}
}
void fun2()
{
// Define two dates.
DateTime date1 = new DateTime(2010, 1, 1, 8, 0, 15);
DateTime date2 = new DateTime(2010, 8, 18, 13, 30, 30);
TimeSpan interval = date2 - date1;
Console.WriteLine("{0} - {1} = {2}", date2, date1, interval.ToString());
Console.WriteLine(" {0,-35} {1,20}", "Value of Days Component:", interval.Days);
Console.WriteLine(" {0,-35} {1,20}", "Total Number of Days:", interval.TotalDays);
Console.WriteLine(" {0,-35} {1,20}", "Value of Hours Component:", interval.Hours);
Console.WriteLine(" {0,-35} {1,20}", "Total Number of Hours:", interval.TotalHours);
Console.WriteLine(" {0,-35} {1,20}", "Value of Minutes Component:", interval.Minutes);
Console.WriteLine(" {0,-35} {1,20}", "Total Number of Minutes:", interval.TotalMinutes);
Console.WriteLine(" {0,-35} {1,20:N0}", "Value of Seconds Component:", interval.Seconds);
Console.WriteLine(" {0,-35} {1,20:N0}", "Total Number of Seconds:", interval.TotalSeconds);
Console.WriteLine(" {0,-35} {1,20:N0}", "Value of Milliseconds Component:", interval.Milliseconds);
Console.WriteLine(" {0,-35} {1,20:N0}", "Total Number of Milliseconds:", interval.TotalMilliseconds);
Console.WriteLine(" {0,-35} {1,20:N0}", "Ticks:", interval.Ticks);
// the example displays the following output:
// 8/18/2010 1:30:30 PM - 1/1/2010 8:00:15 AM = 229.05:30:15
// Value of Days Component: 229
// Total Number of Days: 229.229340277778
// Value of Hours Component: 5
// Total Number of Hours: 5501.50416666667
// Value of Minutes Component: 30
// Total Number of Minutes: 330090.25
// Value of Seconds Component: 15
// Total Number of Seconds: 19,805,415
// Value of Milliseconds Component: 0
// Total Number of Milliseconds: 19,805,415,000
// Ticks: 198,054,150,000,000
}
}