Typo in bufmgr.c that result in waste of memory

Поиск
Список
Период
Сортировка
От Takashi Horikawa
Тема Typo in bufmgr.c that result in waste of memory
Дата
Msg-id 73FA3881462C614096F815F75628AFCD035A48C3@BPXM01GP.gisp.nec.co.jp
обсуждение исходный текст
Ответы Re: Typo in bufmgr.c that result in waste of memory  (Amit Kapila <amit.kapila16@gmail.com>)
Re: Typo in bufmgr.c that result in waste of memory  (Simon Riggs <simon@2ndQuadrant.com>)
Список pgsql-hackers
Hi all,

I have just found a typo in the source code (not in a comment) of bufmgr.c
that result in waste of memory. It might be a 'bug' but it does not result
in any incorrect operation but just results in waste of a few memory
resource.

As sizeof(PrivateRefCountArray) found in InitBufferPoolAccess() is 64 and
sizeof(PrivateRefCountEntry) which should be used here is 8, this typo
produces 56 byte of unused memory area per one PrivateRefCount entry in the
hash table. I think this result in not only the waste of memory but also
reduces the cache hit ratio.

----
void
InitBufferPoolAccess(void)
{
    HASHCTL     hash_ctl;

    memset(&PrivateRefCountArray, 0, sizeof(PrivateRefCountArray));

    MemSet(&hash_ctl, 0, sizeof(hash_ctl));
    hash_ctl.keysize = sizeof(int32);
X    hash_ctl.entrysize = sizeof(PrivateRefCountArray);
O    hash_ctl.entrysize = sizeof(PrivateRefCountEntry);

    PrivateRefCountHash = hash_create("PrivateRefCount", 100, &hash_ctl,
                                      HASH_ELEM | HASH_BLOBS);
}
----

Attached patch is for the latest development version at the git repository.
--
Takashi Horikawa
NEC Corporation
Knowledge Discovery Research Laboratories


Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: exposing pg_controldata and pg_config as functions
Следующее
От: Chapman Flack
Дата:
Сообщение: Re: about google summer of code 2016