17 Temmuz 2019 Çarşamba

memset metodu

Giriş
memset performans testlerinde Prefaulting için kullanılabilir. Açıklaması şöyle
Because of the way the kernel and memory allocation works, they are not mapped into memory yet. It's only when you first touch them does this happen. And when it does, it incurs a very large penalty from the kernel to map the page.

This can be done by touching all the arrays before the benchmark.
memset ve bzero
Eski kodlarda şöyle yapılmış olabilir. bzero() yerine memset() tercih edilmelidir.
struct sockaddr_in serv_add;
bzero((char*)&serv_add, sizeof(struct sockaddr_in));
memset metodunun string array ile kullanımı
String dizisindeki en son null terminating karakteri ezmemek gerekir.

Örnek
(dizinin büyüklüğü -1) kullanılabilir. Şöyle yaparız.
#include <iostream>
#include <cstring>

int main()
{
  char str[] = "geeksforgeeks";

  std::memset( str, 't', sizeof( str ) - 1 );

  std::cout << str << '\n';
}
Örnek
String'in uzunluğu kullanılabilir. Şöyle yaparız.
#include <iostream>
#include <cstring>

int main()
{
  char str[] = "geeksforgeeks";

  std::memset( str, 't', std::strlen( str ) );

  std::cout << str << '\n';
}

Hiç yorum yok:

Yorum Gönder