6 entry daha
  • jit compiler'ın 2. kısmında loop cloning ve loop hoisting* kavramlarına göz attık.

    https://youtu.be/y0nm-_ucidm

    loop cloning genel olarak dizilerin boyutları belli olmayan döngülerde jit compiler bir yavaş, bir de hızlı versiyonunu oluşturur bu döngülerin, eğer dizinin index'ine ulaşmak istediğiniz döngü değeri dizinin sınırları içerisindeyse yavaş versiyonuna, değilse hızlı versiyonuna yönlendirilir. tabi cloning her döngüde oluşmaz, örneğin döngü tipi int olmalı, basit bir artış olmalı (++ gibi) vs..

    loop hoisting, veya sadece hoisting kavramı, döngüler içerisinde döngü index'lerine bağlı olmayan hesaplamaları döngünün dışına alarak bir defa hesaplamasını ve o değerin döngüde kullanılmasını sağlar.

    en basitinden;

    var a = 50;
    var b = 100;
    for(var i = 0; i < 100; i++)
    {
    (a + b).dump();
    }

    burada a + b toplamı i değişkenine bağlı olmadığı için bunun yerine;

    var a = 50;
    var b = 100;
    var hoist = a + b;
    for(var i = 0; i < 100; i++)
    {
    hoist .dump();
    }
2 entry daha
hesabın var mı? giriş yap