unity 代码运行时间 和 反射的使用

来源:互联网 发布:美萍医药软件 编辑:程序博客网 时间:2024/06/07 19:46
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 initializationvoid 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 framevoid 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}}
0 0
原创粉丝点击