mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Major patch to speed up backend startup after profiling analysis.
This commit is contained in:
17
src/backend/utils/cache/catcache.c
vendored
17
src/backend/utils/cache/catcache.c
vendored
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.7 1997/08/19 21:34:58 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.8 1997/08/24 23:07:42 momjian Exp $
|
||||
*
|
||||
* Notes:
|
||||
* XXX This needs to use exception.h to handle recovery when
|
||||
@ -656,8 +656,19 @@ InitSysCache(char *relname,
|
||||
* and the LRU tuple list
|
||||
* ----------------
|
||||
*/
|
||||
for (i = 0; i <= NCCBUCK; ++i) {
|
||||
cp->cc_cache[i] = DLNewList();
|
||||
{
|
||||
/*
|
||||
* We can only do this optimization because the number of hash
|
||||
* buckets never changes. Without it, we call malloc() too much.
|
||||
* We could move this to dllist.c, but the way we do this is not
|
||||
* dynamic/portabl, so why allow other routines to use it.
|
||||
*/
|
||||
void *cache_begin = malloc((NCCBUCK+1)*sizeof(Dllist));
|
||||
for (i = 0; i <= NCCBUCK; ++i) {
|
||||
cp->cc_cache[i] = cache_begin + i * sizeof(Dllist);
|
||||
cp->cc_cache[i]->dll_head = 0;
|
||||
cp->cc_cache[i]->dll_tail = 0;
|
||||
}
|
||||
}
|
||||
|
||||
cp->cc_lrulist = DLNewList();
|
||||
|
Reference in New Issue
Block a user