- Katılım
- 24 Şubat 2018
- Mesajlar
- 25,192
C standard runtime library içerisinde bulunan
Ama diyelim elimizde 16 bit verilerden oluşan bir array var. Bunu memcpy ile kopyalayınca ne kadar süre tutuyor, özel bir assembly fonksiyonu ile 16 bit kopyalama yaparsak ne kadar sürüyor bakalım.
İşlemci Renesas RA6M2, saat hızı 120 MHz
memcpy 16512 tane 16 bit word, yani 33024 byte kopyalarsam, toplam süre 1.96 ms tutuyor.
memset ile 15996 tane 16 bit word, yani toplam 31992 byte koplalarsam, toplam süre 1.86 ms tutuyor.
memcpy
ve memset
fonksiyonları normalde byte ile çalışır. Yani bir byte adresi verirsin, kaç byte kopyalanacağını veya kaç byte yazılacağını belirtirsin. Eğer kullanılan işlemci mimarisinde RAM, byte olarak adreslenen bir RAM ise, o zaman içerisinde başka tür veriler bulunan yapılar da kopyalanabilir, çünkü neticede veri tipi ne olursa olsun, bellekte ayrı ayrı byte'lar şeklinde saklanacaktır.Ama diyelim elimizde 16 bit verilerden oluşan bir array var. Bunu memcpy ile kopyalayınca ne kadar süre tutuyor, özel bir assembly fonksiyonu ile 16 bit kopyalama yaparsak ne kadar sürüyor bakalım.
İşlemci Renesas RA6M2, saat hızı 120 MHz
memcpy 16512 tane 16 bit word, yani 33024 byte kopyalarsam, toplam süre 1.96 ms tutuyor.
memset ile 15996 tane 16 bit word, yani toplam 31992 byte koplalarsam, toplam süre 1.86 ms tutuyor.