当前位置: 首页 > news >正文

unity Stopwatch

http://www.unity.5helpyou.com/3726.html

我想在一帧内获取某个方法的总执行时间。开始想用Time.time减去之前保存的时间。但是发现在一帧内永远返回的是0,多帧的话可以,看来Time.time只会在每一帧赋值更新一次,所以一帧内的就取不到了。

然后查了一下c#有一个Stopwatch的类可以帮我们记录时间,使用起来也挺便利的。。

using UnityEngine;
using System.Collections;
using System.Diagnostics;
 
public class NewBehaviourScript : MonoBehaviour {
 
	void Start () {
	
		float t = Time.time;
		TestMethod();
		UnityEngine.Debug.Log(string.Format("total: {0} ms",Time.time - t));
 
 
 
		Stopwatch sw = new Stopwatch();
		sw.Start();
		TestMethod();
		sw.Stop();
		UnityEngine.Debug.Log(string.Format("total: {0} ms",sw.ElapsedMilliseconds));
 
 
		Profiler.BeginSample("TestMethod");
		TestMethod();
		Profiler.EndSample();
	}
 
 
	void TestMethod()
	{
		for(int i =0; i < 10000000; i++)
		{
		}
	}
 
}

Stopwatch就可以正确的取到上一个方法所消耗的时间。如果想同时测试多个方法,可以多次调用 sw.Reset(); 然后sw.Stop取ElapsedMilliseconds毫秒数即可。当然也可以用 Profiler.BeginSample 和Profiler.EndSample 但是就是要打开Profiler界面找到那一帧就可以看了。
这个Profile的没试过,待使用。

相关文章:

  • unity 烘焙参数的设置
  • JS 设计模式五 -- 命令模式
  • CommandBuffer实现Distort屏幕扭曲效果
  • Anti-aliasing and Continuity with Trapezoidal Shadow Maps
  • tarjan----强连通分量
  • Trapezoidal Shadow Maps (TSM) - Recipe
  • 十天冲刺-03
  • Perspective Shadow Maps: Care and Feeding
  • 网络基础 08_NAT
  • C# AttributeUsage
  • vue组件之间的传值方式
  • C# Attribute
  • linux 网络虚拟化: network namespace 简介
  • TBDR
  • CBFR和CBDR
  • “大数据应用场景”之隔壁老王(连载四)
  • 【翻译】babel对TC39装饰器草案的实现
  • codis proxy处理流程
  • Docker下部署自己的LNMP工作环境
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • oldjun 检测网站的经验
  • Python打包系统简单入门
  • Redis 懒删除(lazy free)简史
  • 当SetTimeout遇到了字符串
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 推荐一个React的管理后台框架
  • 王永庆:技术创新改变教育未来
  • 微信小程序填坑清单
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 昨天1024程序员节,我故意写了个死循环~
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • $refs 、$nextTic、动态组件、name的使用
  • (03)光刻——半导体电路的绘制
  • (13)Hive调优——动态分区导致的小文件问题
  • (C语言)字符分类函数
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (汇总)os模块以及shutil模块对文件的操作
  • (九)信息融合方式简介
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)大道至简,职场上做人做事做管理
  • (转)原始图像数据和PDF中的图像数据
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net Signalr 使用笔记
  • .NET 命令行参数包含应用程序路径吗?
  • ::前边啥也没有
  • :O)修改linux硬件时间
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [C++] Windows中字符串函数的种类
  • [C++核心编程](四):类和对象——封装
  • [CF226E]Noble Knight's Path
  • [HTTP]HTTP协议的状态码