switch与if效率实例解析·5年以下编程经验必看【C#】
2023-09-14 09:04:59 时间
绝大多数的程序员喜欢使用if判断,但是真的效率高吗?还是其它的,可能只会用if呢!我们今天就具体测一测,用事实说话,测试量100W:
本文采用的是【C#】语言进行测试
switch效率测试代码:
using System;
using System.Diagnostics;
namespace Action
{
class Program
{
static void Main(string[] args)
{
Random ra = new Random();
int count = 1000000;
DateTime start = DateTime.Now;
for (int i = 0; i < count; i++)
{
switch (ra.Next(10))
{
case 0:break;
case 1:break;
case 2:break;
case 3:break;
case 4:break;
case 5:break;
case 6:break;
case 7:break;
case 8:break;
case 9:break;
default: break;
}
}
DateTime end = DateTime.Now;
double usedMemory = Process.GetCurrentProcess().WorkingSet64 / 1024.0 / 1024.0;
Console.WriteLine("耗时:"+(end-start).TotalMilliseconds+"毫秒");
Console.WriteLine("消耗内存:"+ usedMemory+"M");
}
}
}
100W次swtich判断,消耗时间31.66ms,消耗内存16.31M
if效率测试代码:
using System;
using System.Diagnostics;
namespace Action
{
class Program
{
static void Main(string[] args)
{
Random ra = new Random();
int count = 1000000;
DateTime start = DateTime.Now;
for (int i = 0; i < count; i++)
{
int v = ra.Next(10);
if (v == 0)
{
}
else if (v == 1)
{
}
else if (v == 2)
{
}
else if (v == 3)
{
}
else if (v == 4)
{
}
else if (v == 5)
{
}
else if (v == 6)
{
}
else if (v == 7)
{
}
else if (v == 8)
{
}
else if (v == 9)
{
}
}
DateTime end = DateTime.Now;
double usedMemory = Process.GetCurrentProcess().WorkingSet64 / 1024.0 / 1024.0;
Console.WriteLine("耗时:" + (end - start).TotalMilliseconds + "毫秒");
Console.WriteLine("消耗内存:" + usedMemory + "M");
}
}
}
100W次swtich判断,消耗时间34.68ms,消耗内存16.30M
结论:
综上实验可得:
1、在C#语言中,两者效率相差不大,几乎可以忽略不计,在一百万次判断中只是相差2~3毫秒,效率还是相当惊人的。
2、很明显的是【Java】【Python】【C#】三者测试完成后,觉得Java的效率还是最高的。相信,如果换成用Linux服务器效果会更好。
相关文章
- C# 多线程多文件批量下载---子线程中更新UI 实例
- 各种好用的代码生成器(C#)
- C#实例:Unity依赖注入使用
- C#人爱学不学9[C#5.0异步实例+WPF自己的MVVM Async应用 1/12]
- asp.net C#数据导出Excel实例介绍
- asp.net中C#获取字符串中汉字的个数实例
- c# string 扩展方法
- C#和JAVA的RSA密钥、公钥转换
- C#设计模式——访问者模式(Visitor Pattern)
- c# 原子操作
- C# 指针学习笔记之fixed 语句
- Atitit。Tree文件解析器的原理流程与设计实现 java c# php js
- 川崎机器人c#通讯(转)
- C#(Winform) 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件
- C# WCF 完整实例,winform 窗体作为 宿主
- C#创建Windows窗体应用程序实例2【学生管理信息系统】
- C#创建Windows窗体应用程序实例4【大学选课】