man/system_diagnostics
man · Sistem Tanılama

$ sample

Bölüm 1 · Sistem Tanılama

Bir süreci belirli bir zaman aralığında profille

Özet

     sample pid | partial-executable-name [duration [samplingInterval]] [-wait] [-mayDie]
	    [-fullPaths] [-e] [-file filename]

Açıklama

sample, çalışan bir sürecin çalışma davranışı hakkında veri toplamak için kullanılan bir komut satırı aracıdır. Süreci belirli aralıklarla (varsayılan olarak her 1 milisaniyede bir) askıya alır, o sırada süreçteki tüm iş parçacıklarının çağrı yığınlarını kaydeder ve ardından süreci devam ettirir. sample tarafından yapılan analize "örnekleme" (sampling) denir çünkü programın durumunu yalnızca örnekleme noktalarında kontrol eder. Analiz, örneklemelerden biri sırasında yürütülmeyen bazı işlevlerin yürütülmesini kaçırabilir, ancak sample yine de yaygın olarak yürütülen işlevler hakkında yararlı veriler sağlar.

Örnekleme süresinin sonunda sample, örnekleme sırasında hangi işlevlerin yürütüldüğünü gösteren bir rapor üretir. Veriler, yığında görülen işlevleri ve bunların nasıl çağrıldığını gösteren bir çağrı ağacına (call tree) yoğunlaştırılır. (Bu ağaç, bazı işlevler örnekleme olaylarının hiçbirinde yürütülmemiş olabileceğinden, yürütmeye ait gerçek çağrı ağacının bir alt kümesidir.) Ağaç metinsel olarak görüntülenir ve çağrılan işlevler, çağıran işlevin bir düzey sağına girintilenir.

Çağrı ağacında, bir işlev birden fazla işlevi çağırırsa, bu ayrı alt işlevleri görsel olarak birbirine bağlamak için dikey bir çizgi yazdırılır; bu da hangi işlevlerin aynı düzeyde olduğunu görmeyi kolaylaştırır. Bu çizgileri çizmek için kullanılan + | : ! gibi karakterler isteğe bağlıdır ve belirli bir anlamı yoktur.

Argümanlar

sample kullanıcısı bir hedef süreç (süreç kimliği veya adıyla), örnekleme yürütme süresini (saniye cinsinden) ve bir örnekleme oranını (milisaniye cinsinden) belirtir.

Örnekleme süresi belirtilmezse, varsayılan olarak 10 saniye kullanılır. Daha uzun örnekleme süreleri, daha fazla örnek toplayarak daha iyi veriler sağlar, ancak hedef süreç bu süre zarfında çok sayıda farklı türde işlem gerçekleştiriyorsa kafa karıştırıcı da olabilir.

Varsayılan örnekleme oranı 1 milisaniyedir. Hızlı örnekleme oranları, daha fazla örnek ve yürütülen tüm işlevleri yakalamak için daha iyi bir şans sağlar.

-wait, belirtilen sürecin (genellikle kısmi bir ad veya ipucu olarak) var olmasını beklemesini, ardından o süreci örneklemeye başlamasını sample aracına bildirir. Bu seçenek, bir uygulamanın başlangıcından itibaren örnekleme yapmanıza olanak tanır.

-mayDie, uygulamanın örnekleme sırasında herhangi bir noktada sonlanabileceği veya çökebileceği varsayımıyla, sembollerin konumunu uygulamadan hemen almasını sample aracına bildirir. Bu, süreç artık var olmasa bile sample aracının çağrı yığınları hakkında bilgi verebilmesini sağlar.

-fullPaths, hata ayıklama bilgisinin mevcut olduğu bir ikili görüntüdeki herhangi bir sembol için kaynak kodun tam yolunu (yalnızca dosya adı yerine) göstermesini sample aracına bildirir. Tam yol, ikili görüntü derlendiğinde kaynak kodun yolu olan yoldur.

-e, örnekleme tamamlandığında çıktıyı TextEdit'te otomatik olarak açmasını sample aracına bildirir.

  • -file filename, sample aracına çıktının yazılması gereken tam yolu bildirir.: Bu bayrak belirtilmezse, sonuçlar /tmp dizininde <uygulama adı>..sample.txt adlı bir dosyaya yazılır; burada her bir 'X' harfinin yerine rastgele bir alfanümerik karakter getirilir.

Hem -e hem de -file bayrakları verilmezse, çıktı stdout'a yazılmasının yanı sıra /tmp dizinindeki dosyaya da kaydedilir.

Ayrıca Bakınız

filtercalltree(1), spindump(8)

Xcode geliştirici araçları, sample tarafından sağlanana benzer bilgiler verebilen grafiksel bir uygulama olan Instruments aracını da içerir. Time Profiler aracı, dinamik, gerçek zamanlı CPU örnekleme bilgilerini grafiksel olarak görüntüler.