შესრულების ანალიზი
გსურთ გააუმჯობესოთ ველორენის შესრულება? მაგრამ თქვენ არ იცით როგორ შეაფასოთ ველორენის შესრულება? ეს გვერდი არის ინსტრუმენტების კოლექცია, რომლებიც უკვე ინტეგრირებულია veloren-ში და შეიძლება გამოყენებულ იქნას მონაცემების შეგროვებაში.
შედგენა გამოშვების და გამართვის სიმბოლოებით
ინსტრუმენტების უმეტესობა უკეთ მუშაობს გამართვის სიმბოლოებთან და გამოშვების რეჟიმში: თქვენ შეგიძლიათ ააწყოთ პროექტი გამართვის სიმბოლოებით ამ ბრძანების გაშვებით:
cargo build --profile releasedebuginfo
ინტეგრირებული ხელსაწყოები
პრომეთე
Prometheus გაძლევთ საშუალებას შეაგროვოთ ველორენის შიდა ნაწილები მუშაობის დროს. მონაცემთა ქულები აგრეგირებულია (მაგ. ყველა ერთეული, ფიზიკის სისტემაში გატარებული დრო). ეს საშუალებას გაძლევთ სწრაფად, უხეში შეხედოთ ველორენის შესრულებას, მაგრამ არ არის ძალიან დეტალური.
პრომეთეს სტატიკა ექსპორტირებულია ნაგულისხმევად, როდესაც თქვენ გაუშვით veloren-server-cli
გახსენით თქვენი ვებ ბრაუზერი http://localhost:14005/metrics, რათა ნახოთ ნედლეული მნიშვნელობები.
თქვენ შეგიძლიათ ამ მონაცემების იმპორტი Prometheus-ში ამ სახელმძღვანელოს მეშვეობით: https://prometheus.io/docs/prometheus/latest/getting_started/
დაამატეთ localhost:14005/metrics თქვენს /etc/prometheus/prometheus.yml-ს.
დაუკავშირდით http://localhost:9090-ს და შეიყვანეთ tick_time, შეასრულეთ და გადადით Graph რეჟიმში.
შეგიძლიათ დააკავშიროთ თქვენი Prometheus სერვისი Grafana-ს ინსტანციას: https://prometheus.io/docs/visualization/grafana/ თქვენ იპოვით დაფების მაგალითებს veloren ინფრასტრუქტურის რეპოში (ჯერ არ არის ხელმისაწვდომი): https://gitlab.com/veloren/infrastructure/-/blob/master/veloren-infra/templates/grafana-dashboads-gameserver.yaml
ტრეისი
Tracy საშუალებას გაძლევთ თვალყური ადევნოთ გარკვეულ პერიოდებში გატარებულ დროს კოდში ჩასმული ინსტრუმენტზე. ეს საშუალებას გაძლევთ მიიღოთ დეტალური დონე გარკვეულ ბლოკებში კოდი, როდის შესრულდება და რამდენი დრო სჭირდება.
ტრეისის აქვს ვრცელი სახელმძღვანელო ხელმისაწვდომი https://github.com/wolfpld/tracy/releases/latest/download/tracy.pdf.
ჩართეთ ტრეისის მხარდაჭერა ფუნქციით tracy ერთ-ერთ ბინარულ ყუთზე:
cargo run --bin veloren-voxygen --no-default-features --features tracy,simd,egui-ui,shaderc-from-source --profile no_overflow"
ჩვენ გვაქვს ამის მეტსახელი განსაზღვრული .cargo/config-ში, ასე რომ, შემდეგი სტენოგრამის გამოყენება შეიძლება, თუ თქვენ
არ არის საჭირო პროფილის მორგება ან რა ფუნქციებია ჩართული:
cargo tracy-voxygen
ანალოგიურად, ჩვენ გვაქვს მეტსახელი სერვერის გასაშვებად ჩართული ტრეისის ფუნქციით:
cargo tracy-server
დაუკავშირდით გაშვებულ პროცესს თქვენი ტრეისის ხელსაწყოს მეშვეობით: https://github.com/wolfpld/tracy/releases
** შენიშვნა: ** ტრეისის საჭირო ვერსია დამოკიდებულია
tracy_client-ის მიმდინარე ვერსიაზე კოლოფს იყენებს ველორენი. ეს შეგიძლიათ იხილოთCargo.lockფაილში რეპოს ძირში და შემოწმებულია ამ ცხრილის მიხედვით https://github.com/nagisa/rust_tracy_client#version-support-table
‘ტვირთის აგება -Z დროები’
როდესაც გსურთ კომპილაციის დროის ანალიზი, შეგიძლიათ გამოიყენოთ ტვირთის ფუნქცია -Z timings. გამოვა ა
.html ფაილი ინდივიდუალური კომპილაციის დროებით, დამოკიდებულებებით და მთლიანი გრაფიკით, რომელიც აჩვენებს არააქტიურს,
აქტიური და უმოქმედო პროექტები.
გარე ხელსაწყოები
ჟანგი: ფლამეგრაფი
მიჰყევით ინსტალაციის ინსტრუქციას აქ: https://github.com/flamegraph-rs/flamegraph
შეასრულეთ იგი cargo flamegraph ან უბრალოდ flamegraph-ის საშუალებით და მიაწოდეთ მდებარეობა შესრულებადს.
როგორც კი დახურავთ, შეიქმნება flamegraph.svg ფაილი, შეგიძლიათ გახსნათ თქვენი ბრაუზერით
Visual Studio 2019 Community Edition (მხოლოდ Windows)
ვიზუალურ სტუდიას აქვს ჩაშენებული პროფილერი, მიჰყევით ამ სახელმძღვანელოს და მიამაგრეთ იგი გაშვებულ ველორენ პროგრამას: https://docs.microsoft.com/de-de/visualstudio/profiling/cpu-usage?view=vs-2019
valgrind/cachegrind
თქვენ შეგიძლიათ გამოიყენოთ valgrind/cachegrind profiler გამომავალი ფაილის გენერირებისთვის და მოგვიანებით გაანალიზოთ valgrind-ის საშუალებით. სახელმძღვანელო: https://www.valgrind.org/docs/manual/cg-manual.html