CodeBlanks Logo Icon CodeBlanks

Burst compiler

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

Player.cs
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

Player.cs
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

Soru
using Unity.Burst;

____
public struct CalculationJob
{
    public float Value;
}
Cevap
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

Uzman bölümündeki tüm dersler