惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

博客园 - Shapley

项目心得 进程间通讯方式 C#使用MCP协议调用大模型示例 SQL Server LEAD函数实践 sql server行专列一例 数据库字段排序方法两则 Sql Server生成ULID例子 审批流进化记 winform+Task+async 献丑贴:Task.Run中foreach优化 Sql Server Begin TRY sample No service for type 'Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter' has been registered. 某低代码平台自定义控件技术点 Element-plus的el-date-picker控件动态切换中英文方案 Chrome浏览器无法查看页面跳转前的请求日志及解决办法 element-plus上传视频并生成缩略图(封面)方案 JWT自动刷新草案 Ajax方法POST的两种提交方式 H5项目在微信浏览器运行实录 Sql Server变量声明及使用技巧 修改Dify的Nginx对外访问端口 Task with Console(with SemaphoreSlim) asp.net core 9.0发布centos7.9 Barrier CountdownEvent
Task实战
Shapley · 2025-01-09 · via 博客园 - Shapley

一:场景描述

在一个文件下查找js文件中指定的关键字,并记录完成查找所需时间。完成此任务使用了3种写法,分别为:

1.使用一个task,在任务中进行for循环,循环调用异步处理方法。
2.先查找出文件路径,然后对每一个文件路径创建一个task,然后让这N个task并行处理。
3.也只利用一个task,在任务中进行for循环,循环调用同步业务方法。

二:运行结果:

 三:结论:

如果利用一个task,那么无论task中执行的方法为同步方法还是异步方法,执行效率无明显差异,互有胜负。由此,从代码编写角度而言,优先编写同步代码,能降低代码的维护难度,且无明显性能短板。而task调用异步方法仅仅是为了满足能调用异步代码而存在,在执行层面来说,与调用同步方法无本质区别,仅此而已。
如果将多个任务拆分成task数组,然后利用task并行处理,则发现性能有明显提升,与1、3方法相比,整体性能提升了至少一个档次。由此而言,优先使用task并行处理,其次再利用task执行后台任务。