จะเปิดใช้งานการสร้างเวลาใน Xcode ได้อย่างไร


91

ฉันต้องการทราบว่าการสร้างโครงการของฉันใช้เวลานานเท่าใดตัวอย่างเช่นโดยการแสดงในบานหน้าต่างการสร้าง ตัวเลือกนี้มีอยู่ใน Xcode หรือไม่

ขอบคุณ.

คำตอบ:


180

พิมพ์สิ่งนี้ในเทอร์มินัล:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

ระยะเวลาจะปรากฏในโปรแกรมดูกิจกรรมหลังการสร้างพร้อมกับข้อความ "สำเร็จ"

หากคุณกำลังเรียกใช้แอปสถานะจะถูกแทนที่ด้วยสถานะการทำงานก่อนที่คุณจะเห็นระยะเวลา

สิ่งนี้จะแทนที่รายการที่ใช้ใน Xcode เวอร์ชันเก่า:

ค่าเริ่มต้นเขียน com.apple.Xcode ShowBuildOperationDuration YES

อาจต้องปิด Xcode ก่อนที่คุณจะป้อนคำสั่งนี้ ระยะเวลาควรปรากฏที่ด้านล่างซ้ายของหน้าต่างโครงการ

ความคิดเห็นจากผู้พัฒนา Xcode: "เช่นเดียวกับค่าเริ่มต้นของผู้ใช้ที่ไม่มีเอกสารทั้งหมดนี้ไม่ได้รับการสนับสนุนถือว่า (แต่ไม่รับประกัน) ถูกต้องและไม่มั่นใจว่าจะมีผลในเวอร์ชันอนาคต"


7
สิ่งนี้ใช้ได้กับ Xcode 6 เช่นกัน เวลาสร้างจะแสดงอยู่ใต้แถบชื่อหน้าต่าง
Klaas

6
ภาพหน้าจอของ @bobobobo ที่เวลาปรากฏใน Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy

2
วิธีใดในการพิมพ์ลงไฟล์?
Alex Bartiş

1
ยืนยันว่าสิ่งนี้ใช้ได้กับฉันใน Xcode 7.1.1 (โดยใช้รุ่นใหม่กว่าcom.apple.dt.Xcode)
Jedidja

2
หากใครที่สงสัยว่า activity viewer คือหน้าต่างที่อยู่ตรงกลางด้านบนของ xcode ซึ่งจะแสดงว่ากำลังสร้างอะไรอยู่และอยู่ในขั้นตอนไหน
Warpzit

14

ใน Xcode 10 ตอนนี้คุณสามารถดูรายละเอียดของเวลาในการสร้างโดยใช้คุณสมบัติสรุปเวลา

ผลิตภัณฑ์ -> ดำเนินการ -> สร้างด้วยสรุปเวลา

ซึ่งจะแสดงเวลาสร้างเป้าหมายและเวลาสร้างโครงการโดยรวม คุณสามารถทำการวิเคราะห์ได้มากมายโดยใช้ข้อมูลนี้และเวลาในการสร้างจะขึ้นอยู่กับฮาร์ดแวร์ของคุณ ลองดูBuilding Faster ใน Xcodeจาก WWDC 2018 หากคุณต้องการเรียนรู้เพิ่มเติม

อย่างไรก็ตาม Xcode จะติดตามงานสร้างทั้งหมดของคุณตามค่าเริ่มต้นและคุณสามารถตรวจสอบเวลาและบันทึกของพวกเขาได้โดยไปที่ Report Navigator

สร้างบันทึกภายใน Report Navigator


ไม่มีวิธีใดที่ฉันสามารถบันทึกบันทึกการสร้างจาก XCode ด้วยการกำหนดเวลาได้ ฉันสามารถดูเวลาในเอาต์พุต XCode เท่านั้น
msk


3

ฉันแก้ไขมันด้วยRun Scripts inBuild Phases

ฉันได้เพิ่ม Run Script หนึ่งรายการที่จุดเริ่มต้นของการสร้าง:

echo $(date +%s) > ../build_start_time

และตอนท้าย:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

ตอนนี้ฉันสามารถดูเวลาใน Build Log -> All Messages


1
ใน Xcode 6.4 จะไม่อนุญาตให้คุณลากเฟสการสร้างสคริปต์ที่รันก่อนขั้นตอนการสร้าง "หุ้น" ใด ๆ หากคุณสร้างขั้นตอนการสร้างเพิ่มเติมจำนวนมากจะช่วยให้คุณสามารถสั่งซื้อขั้นตอนเหล่านั้นใหม่ได้ แต่ดูเหมือนว่าขั้นตอนการสร้าง "หุ้น" ทั้งหมดจะต้องมาก่อน คุณพบวิธีแก้ปัญหานี้แล้วหรือยัง?
Jason Pepas

0

หลังจาก Xcode 10

  • หากคุณสร้างจากบรรทัดคำสั่งให้ใช้-buildWithTimingSummaryเพื่อดูสรุปเวลาสร้าง
xcodebuild -buildWithTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
  • ถ้าคุณใช้ Product->Perform Action->Build With Timing SummaryXcode, และดูสรุปเวลาการสร้างในบันทึกการสร้าง Xcode

ปัจจุบันอาร์กิวเมนต์บรรทัดคำสั่งที่ถูกต้องคือ-showBuildTimingSummary
มอร์ส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.