BDB

 view release on metacpan or  search on metacpan

BDB.pm  view on Meta::CPAN

812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
broken to be supported, so do not use BDB in a windows pseudo-fork, better
yet, switch to a more capable platform.
 
=head1 MEMORY USAGE
 
Per-request usage:
 
Each aio request uses - depending on your architecture - around 100-200
bytes of memory. In addition, stat requests need a stat buffer (possibly
a few hundred bytes), readdir requires a result buffer and so on. Perl
scalars and other data passed into aio requests will also be locked and
will consume memory till the request has entered the done state.
 
This is not awfully much, so queuing lots of requests is not usually a
problem.
 
Per-thread usage:
 
In the execution phase, some aio requests require more memory for
temporary buffers, and each thread requires a stack and other data
structures (usually around 16k-128k, depending on the OS).

BDB.xs  view on Meta::CPAN

224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
}
 
static int next_pri = DEFAULT_PRI + PRI_BIAS;
 
static unsigned int started, idle, wanted;
 
/* worker threads management */
static xmutex_t wrklock = X_MUTEX_INIT;
 
typedef struct worker {
  /* locked by wrklock */
  struct worker *prev, *next;
 
  xthread_t tid;
 
  /* locked by reslock, reqlock or wrklock */
  bdb_req req; /* currently processed request */
  void *dbuf;
  DIR *dirp;
} worker;
 
static worker wrk_first = { &wrk_first, &wrk_first, 0 };
 
static void worker_clear (worker *wrk)
{
}

README  view on Meta::CPAN

682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
    Win32 note: there is no fork on win32, and perls emulation of it is too
    broken to be supported, so do not use BDB in a windows pseudo-fork,
    better yet, switch to a more capable platform.
 
MEMORY USAGE
    Per-request usage:
 
    Each aio request uses - depending on your architecture - around 100-200
    bytes of memory. In addition, stat requests need a stat buffer (possibly
    a few hundred bytes), readdir requires a result buffer and so on. Perl
    scalars and other data passed into aio requests will also be locked and
    will consume memory till the request has entered the done state.
 
    This is not awfully much, so queuing lots of requests is not usually a
    problem.
 
    Per-thread usage:
 
    In the execution phase, some aio requests require more memory for
    temporary buffers, and each thread requires a stack and other data
    structures (usually around 16k-128k, depending on the OS).



( run in 0.252 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )