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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • mongdb学习与使用
  • 解决 MEX 文件 ‘xxx.mexw64‘ 无效: 找不到指定的模块。的问题
  • docker 设置代理,通过代理服务器拉取镜像
  • Java中的面向对象设计原则与实践
  • 日常学习--20240706
  • 【ARMv8/v9 GIC 系列 1.5 -- Enabling the distribution of interrupts】
  • UEC++ 虚幻5第三人称射击游戏(二)
  • Linux 系统性能分析与故障排查:从入门到进阶
  • PyQt5动态热力图清空画布关闭ColorBar
  • Java 项目的构建工具 Maven
  • 生成式AI的短板在于“Token”的存在
  • 12-linux重定向与管道符
  • Flutter-实现双向PK进度条
  • Python入门 2024/7/6
  • 从零开始使用 Docsify 搭建文档站点
  • 分享的文章《人生如棋》
  • PaddlePaddle-GitHub的正确打开姿势
  • php面试题 汇集2
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • spring-boot List转Page
  • Vue全家桶实现一个Web App
  • web标准化(下)
  • 大数据与云计算学习:数据分析(二)
  • 欢迎参加第二届中国游戏开发者大会
  • 基于 Babel 的 npm 包最小化设置
  • 简单易用的leetcode开发测试工具(npm)
  • 模型微调
  • 首页查询功能的一次实现过程
  • 想写好前端,先练好内功
  • - 转 Ext2.0 form使用实例
  • 【干货分享】dos命令大全
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • raise 与 raise ... from 的区别
  • 数据可视化之下发图实践
  • 组复制官方翻译九、Group Replication Technical Details
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (3) cmake编译多个cpp文件
  • (33)STM32——485实验笔记
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C++17) std算法之执行策略 execution
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • ***原理与防范
  • .mysql secret在哪_MySQL如何使用索引
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler