External Profiler Support
Julia, bazı dış izleme profilleyicileri için açık destek sağlar ve bu sayede çalışma zamanının yürütme davranışının yüksek düzeyde bir genel görünümünü elde etmenizi sağlar.
Desteklenen profiller şunlardır:
Adding New Zones
Yeni bölgeler eklemek için JL_TIMING makrosunu kullanın. JL_TIMING arayarak kod tabanında birçok örnek bulabilirsiniz. Yeni bir bölge türü eklemek için bunu JL_TIMING_OWNERS'a (ve muhtemelen JL_TIMING_EVENTS'a) eklemeniz gerekir.
Dynamically Enabling and Disabling Zones
JULIA_TIMING_SUBSYSTEMS ortam değişkeni, belirli bir Julia çalışması için bölgeleri etkinleştirmenizi veya devre dışı bırakmanızı sağlar. Örneğin, değişkeni +GC,-INFERENCE olarak ayarlamak, GC bölgelerini etkinleştirir ve INFERENCE bölgelerini devre dışı bırakır.
Tracy Profiler
Tracy Julia ile isteğe bağlı olarak entegre edilebilen esnek bir profildir.
Tipik bir Tracy oturumu şöyle görünebilir:

Building Julia with Tracy
Tracy entegrasyonunu etkinleştirmek için, Make.user dosyasında WITH_TRACY=1 ekstra seçeneği ile Julia'yı derleyin.
Installing the Tracy Profile Viewer
Profil görüntüleyicisini elde etmenin en kolay yolu TracyProfiler_jll paketini eklemek ve profili başlatmaktır:
run(TracyProfiler_jll.tracy())macOS'ta, profilerdeki UI öğeleri aşırı büyük görünüyorsa TRACY_DPI_SCALE ortam değişkenini 1.0 olarak ayarlamak isteyebilirsiniz.
"Başsız" bir örneği çalıştırmak ve izleme verilerini diske kaydetmek için, kullanın
run(`$(TracyProfiler_jll.capture()) -o mytracefile.tracy`)bunun yerine.
Tracy arayüzünü kullanma hakkında bilgi için Tracy kılavuzuna başvurun.
Profiling Julia with Tracy
Bir Tracy ile Julia profil oluşturma için tipik bir iş akışı, Julia'yı şu şekilde başlatmayı içerir:
JULIA_WAIT_FOR_TRACY=1 ./julia -e '...'Çevre değişkeni, Julia'nın Tracy profilleme aracına başarıyla bağlanana kadar beklemesini sağlar. Daha sonra, Tracy profilleme arayüzünü kullanarak Bağlan butonuna tıklayın ve Julia'nın çalışması devam etmeli ve profilleme başlamalıdır.
Profiling package precompilation with Tracy
Bir paketin ön derleme sürecini profil etmek için, ön derlemek istediğiniz paketi Base.compilecache içine açıkça çağırmak en kolay yoldur:
pkg = Base.identify_package("SparseArrays")
withenv("JULIA_WAIT_FOR_TRACY" => 1, "TRACY_PORT" => 9001) do
Base.compilecache(pkg)
endBurada, Tracy UI'de bağlanmak için doğru istemciyi bulmayı kolaylaştıran özel bir port kullanıyoruz.
Adding metadata to zones
jl_timing_show_* ve jl_timing_printf fonksiyonları, bir bölgeye bir (veya birden fazla) dize eklemek için kullanılabilir. Örneğin, çıkarım için izleme bölgesi, çıkarımı yapılan yöntem örneğini gösterir.
TracyCZoneColor fonksiyonu, belirli bir bölgenin rengini ayarlamak için kullanılabilir. Kod tabanında nasıl kullanıldığını görmek için arama yapın.
Viewing Tracy files in your browser
https://topolarity.github.io/trace-viewer/ adresini ziyaret edin, Tracy izleri için (deneysel) bir web görüntüleyici.
Yerel bir .tracy dosyasını açabilir veya web'den bir URL sağlayabilirsiniz (örneğin, bir Github deposundaki bir dosya). Web'den bir iz dosyası yüklediğinizde, aynı iz dosyasını görüntülemeleri için başkalarıyla sayfa URL'sini de paylaşabilirsiniz.
Enabling stack trace samples
Tracy'de çağrı yığını örneklemeyi etkinleştirmek için, Make.user dosyanızda Julia'yı bu seçeneklerle derleyin:
WITH_TRACY := 1
WITH_TRACY_CALLSTACKS := 1
USE_BINARYBUILDER_LIBTRACYCLIENT := 0make -C deps clean-libtracyclient komutunu çalıştırmanız da gerekebilir, böylece Tracy'nin yeniden derlenmesini zorlayabilirsiniz.
Bu özellik, iz boyutu ve profil oluşturma yükü üzerinde önemli bir etkiye sahiptir, bu nedenle, özellikle iz dosyalarınızı çevrimiçi paylaşmayı planlıyorsanız, çağrı yığını örneklemesini mümkünse kapalı bırakmanız önerilir.
Julia JIT çalışma zamanı henüz Tracy'nin sembolizasyonu için entegrasyona sahip olmadığından, Julia fonksiyonları genellikle bu yığın izlerinde bilinmeyen olacaktır.
Intel VTune (ITTAPI) Profiler
Bu bölüm henüz yazılmadı.