项目从.NET5.0 升级到 8.0,加起来 1.5 万行代码, Linux 下编译经常要半个小时,有的时候又几秒钟就能编译完, Windows 下一直非常正常,怎么排查?

165 天前
 drymonfidelia
服务器是 aws m8g.2xlarge 8 核 32GB 内存
整个服务器上就一个 Docker ,里面运行这个服务
以前 .NET 5 的都是秒编译
现在经常要半个小时,有时甚至五六个小时编译不完
有时候又能 2 秒编译,不知道为什么
`docker system prune -a` 运行了好几遍,没效果



开 Debug 是因为刚才想试试是不是 Release 导致的编译缓慢才改的,并不是导致问题的原因
4286 次点击
所在节点    .NET
34 条回复
hez2010
165 天前
可以试试给 dotnet build 加几个参数:-clp:PerformanceSummary -tl:false
这样能看到编译时间到底花在了具体哪个任务上
liuliuliuliu
165 天前
这很显然需要一个日志来看看时间都花费在哪里了。
build 的时候加个参数吧
dotnet build -bl:SpecificStep.binlog
supemaomao
165 天前
如果是编译为镜像,那么原因可能是 net8 不支持仿真编译了,你需要更改编译的命令,让其使用交叉编译。这个问题之前遇到过。
drymonfidelia
165 天前
@hez2010 加上了,但是似乎没有输出别的东西
drymonfidelia
165 天前
好奇怪的问题,似乎同一套代码,刚才测试 1 楼的参数 3 分钟就编译完了,现在测试 2 楼的参数又编译了 10 分钟还没出来,每次编译时间完全随机
kk2syc
165 天前
@drymonfidelia 或许是 linux 下编译器的问题呢?而不是项目代码
netnr
165 天前
估计是 dotnet restore 下载资源网速不稳定

改善网络
外面发布文件,再基于发布文件+runtime 打包,避免编译
beginor
165 天前
加上加个 no restore ,不联网检查 nuget 包, 看看是不是网络问题
tusj
165 天前
说两个微软给我的印象:
1 、大学时第一次接触 Visual Studio ,进去之后字体默认是宋体,编程字体用非等宽,写出来那个代码看着非常膈应!(当然可以调整,但非要让每一个人一上来都调整一遍?这不就做事做不到位,招人恶心嘛)。第一次印象就很差,任你网上再吹什么宇宙第一 IDE ,内心还是抗拒。
2 、dotnet7 出来的时候,试了一下,Mac 电脑上命令行 init 一个项目,要好几秒。我心想,就建几个空目录,要好几秒?印象又一次很差!直接从 init 到放弃!任你网上吹什么不考虑工作生存压力,心中理想代码什么写 C#, 什么 dotnet 别提多爽云云。。。我内心还是抗拒,完全不信!
dabao
165 天前
换一台 linux 编译,排查下
billbob
165 天前
买个墙外服务器编译,就是下载网络问题,不用看
liuidetmks
165 天前
哥们,你到底是干嘛的,高强度刷 V 站发帖,各方面问题都涉及,业务这么广的吗
kneo
165 天前
跑个 benchmark 吧。有时候是服务器的问题。
qW7bo2FbzbC0
165 天前
墙内下载依赖包的确是会有网络问题
chunqiu233
165 天前
@liuidetmks 哈哈
nmap
164 天前
现在.net 还能开发 linux 的应用了?
w568w
164 天前
@nmap 14 年就支持了吧,.NET 早就改名 .NET Core 了
a33291
164 天前
@nmap 现在是真正意义的跨平台和架构(包括龙芯之类) 😁
asuraa
164 天前
是不是加 arm 了 如果你加 arm 和 arm64 之类的确实是这样的,我用 github action 编译 x86 非常快,但是一旦启用 arm64 就慢成屎, 甚至会超时
jstony
164 天前
@w568w .net core 已经入土,现在就叫.net

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1121065

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX