2025年12月3日 星期三

[研究]Jenkins 的 "執行 Windows 批次指令" 開始執行前,就花了 7 小時,如何加速 ?

[研究]Jenkins 的 "執行 Windows 批次指令" 開始執行前,就花了 7 小時,如何加速 ?

2025-12-03

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2

********************************************************************************

經過時間 00:07:30.04  <=== 發現 Jenkins 的 "執行 Windows 批次指令" 開始執行前,就花了 7 小時 40 分,如何加速 ?

建置成功。

"D:\Jenkins\workspace\Fortify_WebApplication1\WebApplication1\WebApplication1.sln" (預設目標) (1) ->
"D:\Jenkins\workspace\Fortify_WebApplication1\WebApplication1\WebApplication1\WebApplication1.csproj" (預設目標) (2) ->
(AspNetPreCompile 目標) -> 
  ASPNETCOMPILER : warning CS1685: 預先定義的類型 'System.ObsoleteAttribute' 在全域別名的多個組件中都有定義; 使用 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\mscorlib.dll' 中的定義 [D:\Jenkins\workspace\Fortify_WebApplication1\WebApplication1\WebApplication1\WebApplication1.csproj]

    1 個警告
    0 個錯誤

經過時間 00:07:30.04
[Fortify_WebApplication1] $ cmd /c call C:\Users\ADMINI~1\AppData\Local\Temp\jenkins4235466723566878775.bat

ChatGPT (敝人摘要)

  • 關閉防毒 or 排除一些目錄 C:\Jenkins\workspace\... 和 Temp 目錄、、、
  • 改用 SSD
  • 增加 CPU、RAM
  • Temp 裡檔案太多或磁碟 I/O 慢,刪除

del /q /f /s  "C:\Users\ADMINI~1\AppData\Local\Temp\*.*"

  • 太多 Jenkins Job同時執行 (敝人當下只有一個 Job)
  • Workspace 在 NAS 或網路磁碟 (敝人不是)
  • 剩餘HDD空間低,建議20GB

********************************************************************************

Jenkins 組態畫面這些參數用途 ? 移除會否更快 ?

Build a Visual Studio project or solution using MSBuild Command Line Arguments ? 
/p:DeployOnBuild=true /p:PublishProfile=FolderProfileDev

ChatGPT

1️⃣ /p:DeployOnBuild=true

用途:

  • DeployOnBuild=true 告訴 MSBuild 在 Build 完成後同時執行部署(Deploy)。
  • 對 Web 專案(ASP.NET WebForm)常用於自動把建置產物拷貝到發佈目錄或 IIS 目錄。

對速度的影響:

  • 會增加建置時間,因為不只是編譯,還會做部署動作(拷貝、設定發佈資料夾等)。
  • 如果只是給 Fortify SCA 掃描程式碼,實際上 不需要做部署,可以移除加快速度。

2️⃣ /p:PublishProfile=FolderProfileDev

  • 用途:
    • 指定 Visual Studio 的 Publish Profile。
    • 例如 FolderProfileDevLocal 通常設定了:
      • 發佈目錄(Output Path)
      • 包含/排除檔案
      • 配置 Web.config 轉換
    • MSBuild 在 Build 後會自動套用該 Profile 進行發佈。
  • 對速度的影響:
    • 同樣會增加時間,因為 MSBuild 會做額外步驟:
      • 複製檔案
      • Web.config 轉換
      • 建立發佈資料夾結構
    • 對 Fortify SCA 不需要部署的情況,這部分可以移除,節省幾分鐘甚至十幾分鐘。

🔹 總結建議

可以移除。

(完)

相關

沒有留言:

張貼留言