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

【Unity开发】几种空值判断的性能测试

【Unity开发】几种空值判断的性能测试)

项目优化过程中,一个非常细节的优化,就是在项目数据处理过程中,会用大量的null和“”空值的判断,参考了一些网友说的性能差别很大,是不是真的需要优化的问题,做了本文的测试。

完整测试代码

using System;
using UnityEngine;public class TestNull : MonoBehaviour
{void Start(){// 初始化测试数据int total = 1000000;long st, se;string mode = "abc";int a=0, b=0, c=0;// 测试关系运算性能st = DateTime.UtcNow.Ticks;for (int i = 0; i < total; i++){if(mode != null && mode !=""){a = i;}else{a = i;}}se = DateTime.UtcNow.Ticks;float s1 = se - st;Debug.LogWarning(s1/10000 + "ms [!=null && !=\"\"]");// 测试条件运算性能st = DateTime.UtcNow.Ticks;for (int i = 0; i < total; i++){if(mode is not null && mode !=""){b = i;}else{b = i;}}se = DateTime.UtcNow.Ticks;float s2 = se - st;Debug.LogWarning(s2/10000 + "ms [is not null && != \"\"]");// 测试函数运算性能st = DateTime.UtcNow.Ticks;for (int i = 0; i < total; i++){if(!string.IsNullOrEmpty(mode)){c = i;}else{c = i;}}se = DateTime.UtcNow.Ticks;float s3 = se - st;Debug.LogWarning(s3/10000 + "ms [IsNullOrEmpty]");
}

测试结果
在这里插入图片描述

性能一目了然,对于百万级性能测试来说,实际的开发中是否有实际应用价值,大家自已按需考虑。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TS简单总结
  • 基于微信小程序的书籍销售预测系统的设计与实现(论文+源码)_kaic
  • 前后端项目交互异步请求JSON数据类型后端标准响应数据格式
  • 斗破C++编程入门系列之四:运算符和表达式
  • 手撕C++入门基础
  • Java Sream中自定义Collector实现复杂数据收集方法
  • Java 向上转型小白学习总结
  • hive benchmark
  • zdpvue_primeadmin 登录相关界面的代码梳理和优化,一款Vue3开发的后台管理系统模板
  • IDEA如何进行断点调试
  • day 28 HTTP协议
  • C语言第20天笔记
  • 在Java程序中执行Linux命令
  • 对AI大模型的擅长能力的了解
  • 工作 sql 数据库创建 表的修改 插入数据
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Android Volley源码解析
  • Android系统模拟器绘制实现概述
  • CODING 缺陷管理功能正式开始公测
  • es6--symbol
  • HTTP那些事
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel5.4 Queues队列学习
  • React组件设计模式(一)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Theano - 导数
  • use Google search engine
  • 聊聊redis的数据结构的应用
  • 前端知识点整理(待续)
  • 三分钟教你同步 Visual Studio Code 设置
  • 小程序01:wepy框架整合iview webapp UI
  • 正则表达式
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​Redis 实现计数器和限速器的
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #70结构体案例1(导师,学生,成绩)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (LeetCode C++)盛最多水的容器
  • (分布式缓存)Redis哨兵
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (三)uboot源码分析
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (转)jQuery 基础
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)详解PHP处理密码的几种方式
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core 中的路径问题
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter