C# Queue、List、LinkedList 性能对比

最近需要用到一个先进先出的缓存列队,对比了一下几个可能用的类的性能。。

向添加100w个数据,然后每次弹出100个,输出用时

            Queue<int> q = new Queue<int>();List<int> l = new List<int>();LinkedList<int> ll = new LinkedList<int>();var count =  1000 * 1000;var t = DateTime.Now;for (int i = 0; i < count; i++){q.Enqueue(i);}Console.WriteLine("添加Enqueue用时:" + (DateTime.Now - t).TotalMilliseconds);t = DateTime.Now;for (int i = 0; i < count; i++){l.Add(i);}Console.WriteLine("添加List用时:" + (DateTime.Now - t).TotalMilliseconds);t = DateTime.Now;for (int i = 0; i < count; i++){ll.AddLast(i);}Console.WriteLine("添加LinkedList用时:" + (DateTime.Now - t).TotalMilliseconds);t = DateTime.Now;while (q.Count > 0){for (int i = 0; i < 100; i++){q.Dequeue();}}Console.WriteLine("弹出Enqueue用时:" + (DateTime.Now - t).TotalMilliseconds);t = DateTime.Now;while (l.Count > 0){l.RemoveRange(0, 100);}Console.WriteLine("弹出List用时:" + (DateTime.Now - t).TotalMilliseconds);t = DateTime.Now;while (ll.Count > 0){for (int i = 0; i < 100; i++){ll.RemoveFirst();}}Console.WriteLine("弹出LinkedList用时:" + (DateTime.Now - t).TotalMilliseconds);

输出结果

添加Enqueue用时:10.9944
添加List用时:6.9974
添加LinkedList用时:97.7324
弹出Enqueue用时:7.9959
弹出List用时:699.3315
弹出LinkedList用时:8.0135

所以,结果显而易见,应该用  Queue

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

确保跨平台自动化测试脚本的稳定运行:获取谷歌浏览器与ChromeDriver版本20240703

确保跨平台自动化测试脚本的稳定运行&#xff1a;获取谷歌浏览器与ChromeDriver版本 在自动化测试中&#xff0c;确保谷歌浏览器&#xff08;Google Chrome&#xff09;与ChromeDriver版本匹配至关重要&#xff0c;特别是跨平台&#xff08;Windows和Linux&#xff09;测试时。…

Android文件路径获取

文件存储相关的文档 文件存储相关的系列文档如下&#xff0c;可根据需要查看这些文档 Android文件路径获取 Android存储权限梳理及api接口调用 Android各种存储路径的比较 Android R及以上版本中APP外部存储实现 Android文件路径获取 在Android开发中&#xff0c;经常需要…

24位DAC转换的FPGA设计及将其封装成自定义IP核的方法

在vivado设计中,为了方便的使用Block Desgin进行设计,可以使用vivado软件把自己编写的代码封装成IP核,封装后的IP核和原来的代码具有相同的功能。本文以实现24位DA转换(含并串转换,使用的数模转换器为CL4660)为例,介绍VIVADO封装IP核的方法及调用方法,以及DAC转换的详细…

为什么除以n-1而不是n得到的样本方差是总体方差的无偏估计量

文章目录 前言具体的解释&#xff1a; 前言 在统计学中&#xff0c;我们通常使用样本方差来估计总体方差。样本方差的计算通常是将每个观测值与样本均值的差的平方和除以样本大小减去1&#xff0c;即 ( 1 n − 1 ∑ i 1 n ( x i − x ˉ ) 2 ) (\frac{1}{n-1} \sum_{i1}^{n}…

REGX52.H报错

keil cannot open source input file "REGX52.H": No such file or directory 选择下面这个目录 Keil\C51\INC\Atmel

源码扭蛋机开发初探

在软件开发的世界里&#xff0c;创新总是层出不穷。今天&#xff0c;我们将一起探讨一个有趣而富有创意的项目——源码扭蛋机。源码扭蛋机&#xff0c;顾名思义&#xff0c;就是将传统的扭蛋机概念与代码编程相结合&#xff0c;让开发者们在扭动的过程中随机获得各种有趣的、实…

【持续更新】App Inventor 2 中文网原创内容

App Inventor 2 中文网原创的技术文档&#xff0c;作品&#xff0c;技术文章&#xff0c;帖子&#xff0c;问答&#xff0c;技术指导&#xff0c;问题解决思路等。 基础知识 【连接调试】App Inventor 2 连接方式&#xff1a;AI伴侣、模拟器、USB【连接调试】Ai2 Starter模拟…

pip常用命令详解

pip 是 Python 的官方第三方包管理工具之一&#xff0c;其为 Python 包的安装与管理提供了极大的便利。本文将详细介绍 pip 的常见命令及其用法&#xff0c;帮助读者更好地利用这一强大的工具。 1. 安装 pip 在开始使用 pip 之前&#xff0c;确保您的系统中已经安装了 pip。p…

synchronized和volatile

synchronized synchronized关键字的作用&#xff1a; 在Java中&#xff0c;synchronized关键字用于确保多个线程在访问共享资源时的安全性。它通过获取对象的内置锁&#xff08;也称为monitor&#xff09;来实现同步&#xff0c;保证了同一时刻只有一个线程可以进入同步代码块或…

Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL

章节内容 上一节我们完成了&#xff1a; Reduce JOIN 的介绍Reduce JOIN 的具体实现DriverMapperReducer运行测试 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&am…

无人机在航拍领域有哪些独特优势?

那肯定是便宜啊&#xff0c;相比传统的飞机或直升机航拍作业&#xff0c;无人机航拍具有更快的响应速度和更低的成本。无人机可以随时随地进行起降&#xff0c;并在短时间内完成航拍任务&#xff0c;极大地提高了作业效率。同时&#xff0c;无人机的运营成本相对较低&#xff0…

Mac如何杀毒?Mac电脑如何杀毒 mac杀毒软件推荐 mac杀毒软件哪个好用

Mac的轻薄和便携是众多白领选择它作为办公PC的原因&#xff0c;而除此之外&#xff0c;Mac另一个被人选择的原因&#xff0c;是macOS 系统特有的安全性。因此许多人以为&#xff0c;Mac不需要安装专门的杀毒软件。然而事实并非如此&#xff01; 每年都会出现许多恶意软件准们针…

【C++中ord的作用】

ord(s[i]) - ord(0): ord()的意思时求一个字符的Ascii码。 因为程序里如果x时用字符读入的&#xff0c;不能把他当作数字运算&#xff0c;要转化为数字。 比如说“0”的Ascii码为48&#xff0c;"1"到“9”的Ascii码分别为49到57&#xff0c;所以ord&#xff08;‘…

新手外贸都会面临的几个问题

如果你没有团队资源背景,只有你一个人,同时你想在2024年这个节点上,真正把外贸从0~1做起来,并且在几个月之后,能够依靠外卖给自己带来持续稳定的收入,这是我做外贸以来,以及我个人踩过无数个坑才得到的结论。 做外贸不要先想着我们要学习什么样技能,一定要先确定我们应该怎么赚…

微服务数据流的协同:Eureka与Spring Cloud Data Flow集成指南

微服务数据流的协同&#xff1a;Eureka与Spring Cloud Data Flow集成指南 在构建基于Spring Cloud的微服务架构时&#xff0c;服务发现和数据流处理是两个关键的组成部分。Eureka作为服务发现工具&#xff0c;而Spring Cloud Data Flow提供了数据流处理的能力。本文将详细介绍…

昇思学习打卡-3-张量Tensor

本章节系统的学习了张量的相关内容&#xff0c;张量是由若干个当坐标系改变时满足转换关系的分量组成的集合。它是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。是一种类似于矩阵的特殊的数据结构。包括 创建张量的方式&#xff1b;张量的属性&#…

Android系统判断屏幕点击和按键其他人为触控时间的方法有哪些?

在Android系统中&#xff0c;判断屏幕点击、按键以及其他人为触控的时间是一个常见的需求&#xff0c;尤其在开发需要精细交互的应用时尤为重要。这一功能不仅提升了用户体验&#xff0c;还增强了应用的响应性和准确性。以下从技术难点、面试官关注点以及回答吸引力三个方面进行…

xml_woarchive undefined symbol

最近在linux中编译一个自己写的老代码。是个C动态库。可以编译成功&#xff0c;但直到运行的时候才报 boost xml_woarchive undefined symbol. 解决的方法是在编译时要加上 wserialization 库。 注意&#xff0c;这个库有含 w 和不含 w 两个。在我这里需要使用含 w 的。 如果…

解决:使用MySQL Command Line Client时光标不显示

问题描述: 使用MySQL Command Line Client时&#xff0c;命令行输入字符光标不显示, 如下图: 解决办法: 1.按Shift键将输入法切换至中文,打出中文: 2.再按一次Shift键,光标就会显示:

工作助手VB开发笔记(1)

1.思路 1.1 样式 样式为常驻前台的一个小窗口&#xff0c;小窗口上有三到四个按钮&#xff0c;为一级功能&#xff0c;是当前工作内容的常用功能窗口&#xff0c;有十个二级窗口&#xff0c;为选中窗口时的扩展选项&#xff0c;有若干后台功能&#xff0c;可选中至前台 可最…