You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化.Net Core中Logary项目的编辑-运行循环耗时?

解决Logary性能测试中Paket全量还原的问题

哎呀,这个Paket全量还原的问题确实挺磨人的,尤其是在做性能测试的时候,每次小改动都要等半天,太影响效率了。我结合Paket和.NET Core的使用经验,给你几个可行的方案试试:

1. 用Paket局部还原缩小范围

Paket本身支持只还原特定项目或依赖组,不用每次都扫整个仓库。你可以试试这两个命令:

  • 仅还原Benchmarks组的依赖:
    paket restore --group Benchmarks
    
  • 仅还原PerfTests项目的依赖:
    paket restore ./src/Logary.PerfTests/Logary.PerfTests.fsproj
    

这样就能避免触发全仓库的依赖扫描,大大减少CPU占用和等待时间。

2. 调整Rider的Paket自动还原设置

Rider默认的自动还原行为可能会偷偷触发全量操作,你可以改一下设置:

  • 打开Settings > Build, Execution, Deployment > NuGet > Paket
  • 取消勾选「Automatically restore Paket dependencies on project load」,或者改成「Only restore when solution is loaded」
  • 之后手动执行上面的局部还原命令,再运行性能测试,代替IDE自动触发的全量还原。

3. 拆分更轻量化的解决方案

既然你已经试过Core项目的解决方案,不如再进一步:

  • 专门为PerfTests创建一个独立的小解决方案,只包含它直接依赖的项目(比如Logary核心库+PerfTests本身),排除仓库里其他无关项目
  • 给PerfTests单独配置一个Paket依赖组,让还原操作只聚焦在这个组的包上,进一步缩小范围。

4. 确保Paket缓存正常工作

Paket会把下载的包缓存到本地目录(默认是~/.paket/cache),如果缓存失效或者被清理,每次还原都会重新下载包,导致耗时剧增。你可以:

  • 检查缓存目录是否存在,且有足够空间
  • 设置PAKET_CACHE_DIR环境变量,指定一个不会被清理工具误删的稳定位置
  • 手动清理旧缓存后重新执行一次局部还原,让Paket重新生成有效缓存。

5. 排查跨项目依赖的强制还原问题

有时候小改动触发全量还原,可能是因为PerfTests间接引用的项目里有配置导致强制还原。你可以:

  • 检查PerfTests项目文件里的<RestoreProjectStyle>配置,确保没有设置成强制全量还原
  • 查看Paket的引用配置,确认没有不必要的跨项目依赖被标记为「Always Restore」。

内容的提问来源于stack exchange,提问作者Henrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:38:41