Hála Nyomasek Bobónak: explicit_memset

Ugyebár a mi Bobókánk mindenre képes, hogy segítsen nekünk, például kitalálta, hogy a compiler "kioptimalizálhatja" a memset-et. Namostan Bobó persze nem gondolhat mindenre (vagy bármire a saját kis perspektíváján kívül), tehát filmszínházunk bemutatja: explicit_memset

PHP-7.3 implementációja:


PHPAPI void php_explicit_bzero(void *dst, size_t siz)
{
...
#elif defined(__GNUC__)
        memset(dst, 0, siz);
        asm __volatile__("" :: "r"(dst) : "memory");
...
}

Ezt persze nem értem, de bizonyára jó, csak csavarnom kell egyet a gcc opcióin, pl s/-std=c99/-std=gnu99/g

Szerk: viszont ezután gond nélkül lefordult a php-7.3.0alfa1. Ez is valami.

2018.11.05. 13:00 Linuxon is ugyanezt kell csinálni: -std=gnu99

Hozzászólások

Ez a memset kioptimalizálás papíron bölcs ötlet, de ha belegondolunk pont azért írja le a programozó, mert azt akarja, hogy a nem használt memória ki legyen nullázva. Hirtelen nem tudok elképzelni esetet, amikor a memset le van írva, de nem kellene végrehajtani.