项目从.NET5.0 升级到 8.0,加起来 1.5 万行代码, Linux 下编译经常要半个小时,有的时候又几秒钟就能编译完, Windows 下一直非常正常,怎么排查?
服务器是 aws m8g.2xlarge 8 核 32GB 内存
整个服务器上就一个 Docker ,里面运行这个服务
以前 .NET 5 的都是秒编译
现在经常要半个小时,有时甚至五六个小时编译不完
有时候又能 2 秒编译,不知道为什么docker system prune -a
运行了好几遍,没效果
开 Debug 是因为刚才想试试是不是 Release 导致的编译缓慢才改的,并不是导致问题的原因
可以试试给 dotnet build 加几个参数:-clp:PerformanceSummary -tl:false
这样能看到编译时间到底花在了具体哪个任务上
这很显然需要一个日志来看看时间都花费在哪里了。
build 的时候加个参数吧
dotnet build -bl:SpecificStep.binlog
如果是编译为镜像,那么原因可能是 net8 不支持仿真编译了,你需要更改编译的命令,让其使用交叉编译。这个问题之前遇到过。
加上了,但是似乎没有输出别的东西
好奇怪的问题,似乎同一套代码,刚才测试 1 楼的参数 3 分钟就编译完了,现在测试 2 楼的参数又编译了 10 分钟还没出来,每次编译时间完全随机
或许是 linux 下编译器的问题呢?而不是项目代码
估计是 dotnet restore 下载资源网速不稳定
改善网络
外面发布文件,再基于发布文件+runtime 打包,避免编译
加上加个 no restore ,不联网检查 nuget 包, 看看是不是网络问题
说两个微软给我的印象:
1 、大学时第一次接触 Visual Studio ,进去之后字体默认是宋体,编程字体用非等宽,写出来那个代码看着非常膈应!(当然可以调整,但非要让每一个人一上来都调整一遍?这不就做事做不到位,招人恶心嘛)。第一次印象就很差,任你网上再吹什么宇宙第一 IDE ,内心还是抗拒。
2 、dotnet7 出来的时候,试了一下,Mac 电脑上命令行 init 一个项目,要好几秒。我心想,就建几个空目录,要好几秒?印象又一次很差!直接从 init 到放弃!任你网上吹什么不考虑工作生存压力,心中理想代码什么写 C#, 什么 dotnet 别提多爽云云。。。我内心还是抗拒,完全不信!
换一台 linux 编译,排查下
买个墙外服务器编译,就是下载网络问题,不用看
哥们,你到底是干嘛的,高强度刷 V 站发帖,各方面问题都涉及,业务这么广的吗
跑个 benchmark 吧。有时候是服务器的问题。
墙内下载依赖包的确是会有网络问题
哈哈
现在.net 还能开发 linux 的应用了?
14 年就支持了吧,.NET 早就改名 .NET Core 了
现在是真正意义的跨平台和架构(包括龙芯之类) 😁
是不是加 arm 了 如果你加 arm 和 arm64 之类的确实是这样的,我用 github action 编译 x86 非常快,但是一旦启用 arm64 就慢成屎, 甚至会超时
.net core 已经入土,现在就叫.net
微软改名部
基本情况: 本人从事 Android 行业快三年了。 Android 基本工扎实。 平时工作内容:“切图仔”的活居多。 业余时间充足。 接受新东西快。 想通过业余时间,提升…
项目地址: github.com/TabbyML/tabby 主要是用 Rust 做企业级编程助手,欢迎大家围观,更欢迎各种意见和建议 我发现之前就 star 过了,是不…
一直以来的一个疑问,我的 win10 ,经常用着用着就卡的不行了,13900k 64g 内存,4090 显卡 m2 硬盘 2t大概的配置卡的时候连微信打字都会卡,把后台都杀了,…