Về setting GC của xử lý cook trên Unreal Engine 4.26
Cảnh báo Spam: Bài đăng này chưa sẵn sàng để xuất bản. Tác giả có thể đã vô tình công khai nó trong quá trình viết. Do đó, bạn nên suy nghĩ trước khi đọc bài bài này.
Về setting GC của xử lý cook trên Unreal Engine 4.26
Nguồn: qjita
Trong 4.26, quá trình xử lý liên quan đến việc sử dụng bộ nhớ trong khi Cook (môt loại xử lý content) đã thay đổi. Chúng tôi sẽ chia sẻ thông tin vì có một số lưu ý. Trước hết, như một tiền đề chính, tôi nghĩ rằng thời gian Cook thường ngắn hơn nếu bạn lưu trữ nội dung nhiều nhất trong bộ nhớ cho phép để cùng một nội dung không bị đọc nhiều lần.
(Tham khảo) Các ví dụ về chế tác quy mô lớn bằng UE4 Workflow hợp lý nhất https://www.slideshare.net/EpicGamesJapan/ue4-139190804/137
Điều quan trọng là phải thực hiện các cài đặt phù hợp theo hiệu suất của PC dùng để Cook. Đặc biệt nếu bạn có đủ bộ nhớ trên PC CIS của mình, hãy tận dụng nó!
Về điều kiện GC
Hãy tìm hiểu giá trị setting và họat động của trước 4.25 và 4.26
Trước 4.25 Setting default sẽ được ghi trong BaseEditor.ini
[CookSettings]
PackagesPerGC=0
IdleTimeToGC=20
MaxMemoryAllowance=16384
MaxConcurrentShaderJobs=8192
MinReservedMemory=1024
MaxDiffsToLog=5
IgnoreHeaderDiffs=True
; ※MinFreeMemory thì ko được set
Nếu bộ nhớ trong PC từ 16GB trở lên, GC sẽ chạy khi bộ nhớ vật lý được phân bổ cho quá trình vượt quá 16GB trong khi Cook.
4.26 Trong bản 4.26 thì giá trị setting liên quan đã bị thay đổi. Default là :
[CookSettings]
PackagesPerGC=0
IdleTimeToGC=20
MemoryMaxUsedPhysical=16384
MemoryMinFreePhysical=1024
MaxConcurrentShaderJobs=8192
MaxDiffsToLog=5
IgnoreHeaderDiffs=True
GC xảy ra khi bộ nhớ vật lý được quá trình sử dụng vượt quá 16GB và bộ nhớ vật lý còn lại của hệ thống nhỏ hơn 1GB. (Xem UCookOnTheFlyServer :: HasExceededMaxMemory () trong CookOnTheFlyServer.cpp để biết cách triển khai cụ thể)
Sự khác biệt lớn là điều kiện bộ nhớ vật lý còn lại của hệ thống dưới 1GB được nhập bằng AND thay vì OR, và nó cỡ 1GB do hệ điều hành được phân trang đúng cách để bộ nhớ vật lý không bị cạn kiệt. Khi bộ nhớ vật lý còn lại dưới 1GB, OutOfMemory có thể được cấp bất kỳ lúc nào.
Các trị số trong task manager:
Dù không dùng default được ghi trong ini, nhưng tôi phán đoán không phải là memory vật lý mà là memory ảo, nên đã thêm MemoryMaxUsedVirtual và MemoryMinFreeVirtual.
Setting đề xuất Như đã đề cập ở trên, bộ nhớ vật lý là một số được quản lý bởi Hệ điều hành, vì vậy dễ hiểu hơn khi gọi giá trị của Bộ nhớ ảo là tổng dung lượng bộ nhớ được cấp bởi ứng dụng. Ghi đè các tham số bằng cách ghi cài đặt trong DefaultEditor.ini của dự án.
[CookSettings]
;Không phán đoán điều kiện theo memory vật lý
MemoryMaxUsedPhysical=0
MemoryMinFreePhysical=0
;Tiến hành GC khi usage của memory giả tưởng vượt quá 32GB (Hãy điều chỉnh theo PC mà bạn dùng)
MemoryMaxUsedVirtual=32000
MemoryMinFreeVirtual=0
All rights reserved
Bình luận