yoklateknik mülakat

Oyun Geliştirme Un Csharp Memory Gc Performance Mülakat Soruları

75 doğrulanmış Oyun Geliştirme Un Csharp Memory Gc Performance mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Un Csharp Memory Gc PerformanceZorluk 1
Unity Profiler'ın CPU Usage modülünde, bir kare için "GC Alloc" sütunu neyi gösterir?
  • aRuntime'ın ayırdığı toplam managed heap boyutunu.
  • bScript kodunun o karede ayırdığı managed bellek miktarını.
  • cUnity motorunun o karede ayırdığı native (C++) bellek miktarını.
  • dUygulama başladığından beri çalışan garbage collection geçiş sayısını.
Açıklama:"GC Alloc", script kodunun o spesifik karede ne kadar managed bellek ayırdığını raporlar; Update içindeki kare-başı allocation'ları avlarken izlenmesi gereken sütun budur.
Un Csharp Memory Gc PerformanceZorluk 1
C#'ta bir struct değişkeni başka bir struct değişkenine atandığında ne olur?
  • aTüm değer kopyalanır; ikisi birbirinden bağımsız olur.
  • bİki değişken de heap üzerindeki aynı bellek konumuna referans eder hale gelir.
  • cYeni değişkende yalnızca orijinal struct'a bir pointer saklanır.
  • dAtama işlemi managed heap üzerinde otomatik olarak yeni bir nesne ayırır.
Açıklama:struct bir değer tipidir, dolayısıyla atama içeriğin tamamını kopyalar; kaynak ve hedef birbirinden bağımsızdır — aynı heap nesnesini paylaşan referans tiplerinin aksine.
Un Csharp Memory Gc PerformanceZorluk 1
Unity'nin Mono script backend'inde, C# script kodun ne zaman makine koduna derlenir?
  • aHerhangi bir build oluşmadan önce, Unity Editor'ın asset import adımı sırasında tamamen.
  • bHiçbir zaman — Mono, C# bytecode'unu her çağrıda satır satır yorumlar.
  • cRuntime'da, derlenmiş IL cihazda çalıştırılırken, just-in-time olarak.
  • dÖnceden, build sırasında IL'i C++'a çevirerek, ahead-of-time olarak.
Açıklama:Mono bir just-in-time (JIT) runtime'dır: IL2CPP'nin yaptığı gibi önceden native koda çevirmek yerine, ara dili uygulama çalışırken makine koduna derler.
Un Csharp Memory Gc PerformanceZorluk 1
UnityEngine içinde Vector3 nasıl bir C# tipidir?
  • aSomut vektör implementasyonlarının miras aldığı soyut bir sınıf.
  • bOluşturulduğunda managed heap'te ayrılan sealed bir referans sınıfı.
  • cHer desteklenen platformun matematik kütüphanesinin ayrı ayrı uyguladığı bir arayüz.
  • dBir struct'tır — değer tipidir, managed heap'te değil, inline saklanır.
Açıklama:Vector3 (Quaternion ve çoğu UnityEngine matematik tipi gibi) bir struct'tır: değer tipidir, bu yüzden onu geçirmek ya da kopyalamak tek başına managed heap'te ayırma yapmaz.
Un Csharp Memory Gc PerformanceZorluk 1
Physics.RaycastAll ile Physics.RaycastNonAlloc arasındaki temel pratik fark nedir?
  • aRaycastNonAlloc, yeni bir dizi ayırmak yerine isabetleri senin verdiğin diziye yazar.
  • bRaycastNonAlloc, RaycastAll'dan farklı bir physics layer'daki collider'ları algılayabilir.
  • cRaycastAll arka plan thread'inde çalışırken RaycastNonAlloc her zaman ana thread'de çalışır.
  • dRaycastNonAlloc trigger collider'ları tamamen yok sayar, RaycastAll ise her zaman dahil eder.
Açıklama:Physics.RaycastAll her çağrıda yeni bir RaycastHit[] ayırıp döndürür. Physics.RaycastNonAlloc ise senin verdiğin bir RaycastHit[] buffer'ı doldurur, böylece tekrar tekrar (örn. her karede) çağrılması hiç çöp üretmez.
Un Csharp Memory Gc PerformanceZorluk 1
Normal bir managed dizinin aksine, bir NativeArray<T> neden Dispose() çağrılmasını manuel olarak gerektirir?
  • aNativeArray<T> aslında altta managed bir dizidir, sadece daha katı bir API'ye sahiptir.
  • bNativeArray<T>, garbage collector'ın kontrolü dışında yaşayan unmanaged bellek sarmalar.
  • cDispose() çağırmak sadece bir stil kuralıdır; runtime onu zaten kare sonunda serbest bırakır.
  • dNativeArray<T> belleği, dizi scope dışına çıktığı anda otomatik olarak serbest kalır.
Açıklama:NativeArray<T>, bir Allocator kullanarak unmanaged (native) bellek ayırır. Garbage collector bunu asla izlemez ya da serbest bırakmaz, bu yüzden sen açıkça Dispose() çağırana kadar bellek ayrılmış kalır.

2850 soruluk Oyun Geliştirme bankasında kendini sına.

Mülakata başla