Burst compiler
- Oyun Geliştirme kursu
- Uzman
- Ders 23/47
- 4 dk
Burst compiler ile yüksek performanslı kodu öğrenirsin.
Burst Compiler nedir?
Burst Compiler, Unity tarafından geliştirilen ve belirli C# kodlarını yüksek performanslı makine koduna dönüştüren bir derleyicidir. Özellikle matematiksel işlemlerin yoğun olduğu sistemlerde işlem hızını artırmaya yardımcı olur. Burst, uygun kodlarda işlemci mimarisinin SIMD gibi özelliklerinden yararlanabilir.
using Unity.Burst;
[BurstCompile]
public struct CalculationJob
{
// Hesaplama işlemleri
}Burst kullanmak için ilgili paketin projede bulunması ve desteklenen kod yapılarının tercih edilmesi gerekir.
BurstCompile niteliği
Burst kullanmak istediğin uygun metot veya iş yapısına BurstCompile niteliği ekleyebilirsin. Bu nitelik, Burst derleyicisinin ilgili kodu derlemesini sağlar. Burst özellikle matematiksel işlemler ve yoğun hesaplama görevlerinde yararlı olabilir.
using Unity.Burst;
public static class MathOperations
{
[BurstCompile]
public static float DoubleValue(float value)
{
return value * 2f;
}
}Burst her C# özelliğini desteklemez; bu nedenle kullanılan kodun Burst uyumluluğu önemlidir.
Uygulama Burst destekli hesaplama sınıfı oluştur
BurstMath adında statik bir sınıf oluştur. Multiply adlı statik metot tanımla ve metodun üzerine BurstCompile niteliğini ekle. Metot iki float parametre almalı ve bu değerlerin çarpımını döndürmeli. Sonucu konsola yazdır.
Başlangıç kodu
using Unity.Burst;
using UnityEngine;
// Statik sınıfı ve Multiply metodunu tanımla
public class BurstMathTest : MonoBehaviour
{
void Start()
{
// Multiply metodunu çağır ve sonucu yazdır
}
}Örnek çözüm
using Unity.Burst;
using UnityEngine;
public static class BurstMath
{
[BurstCompile]
public static float Multiply(float a, float b)
{
return a * b;
}
}
public class BurstMathTest : MonoBehaviour
{
void Start()
{
Debug.Log("Result: " + BurstMath.Multiply(3f, 4f));
}
}Beklenen çıktı
Result: 12
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Burst Compiler'ın temel amacı nedir?
- Sahne nesnelerini otomatik oluşturmak
- C# kodunu yüksek performanslı makine koduna dönüştürmek Doğru cevap
- Görsel materyalleri düzenlemek
- Ses dosyalarını sıkıştırmak
Açıklama: Burst Compiler, desteklenen C# kodlarını optimize edilmiş makine koduna dönüştürerek performansı artırmayı amaçlar.
2 Burst niteliğini ekle
using Unity.Burst;
____
public struct CalculationJob
{
public float Value;
}
using Unity.Burst;
[BurstCompile]
public struct CalculationJob
{
public float Value;
}
Açıklama: BurstCompile niteliği, Burst derleyicisinin desteklenen ilgili kodu derlemesini sağlar.
3 Burst performans kavramları
| Kavram | Anlamı |
|---|---|
Burst Compiler |
Kodun optimize edilmesini sağlar |
BurstCompile |
Derleme niteliğidir |
SIMD |
Tek komutla birden fazla veriyi işler |
Machine Code |
İşlemcinin çalıştırdığı kod |