Ejemplo n.º 1
0
void caml_init_gc (uintnat minor_size, uintnat major_size,
                   uintnat major_incr, uintnat percent_fr,
                   uintnat percent_m)
{
    uintnat major_heap_size = Bsize_wsize (norm_heapincr (major_size));

    if (caml_page_table_initialize(Bsize_wsize(minor_size) + major_heap_size)) {
        caml_fatal_error ("OCaml runtime error: cannot initialize page table\n");
    }
    caml_set_minor_heap_size (Bsize_wsize (norm_minsize (minor_size)));
    caml_major_heap_increment = Bsize_wsize (norm_heapincr (major_incr));
    caml_percent_free = norm_pfree (percent_fr);
    caml_percent_max = norm_pmax (percent_m);
    caml_init_major_heap (major_heap_size);
    caml_gc_message (0x20, "Initial minor heap size: %luk bytes\n",
                     caml_minor_heap_size / 1024);
    caml_gc_message (0x20, "Initial major heap size: %luk bytes\n",
                     major_heap_size / 1024);
    caml_gc_message (0x20, "Initial space overhead: %lu%%\n", caml_percent_free);
    caml_gc_message (0x20, "Initial max overhead: %lu%%\n", caml_percent_max);
    caml_gc_message (0x20, "Initial heap increment: %luk bytes\n",
                     caml_major_heap_increment / 1024);
    caml_gc_message (0x20, "Initial allocation policy: %d\n",
                     caml_allocation_policy);
}
Ejemplo n.º 2
0
void caml_init_gc (uintnat minor_size, uintnat major_size,
                   uintnat major_incr, uintnat percent_fr,
                   uintnat percent_m)
{
  uintnat major_heap_size = Bsize_wsize (norm_heapincr (major_size));

  caml_set_minor_heap_size (Bsize_wsize (norm_minsize (minor_size)));
  caml_major_heap_increment = Bsize_wsize (norm_heapincr (major_incr));
  caml_percent_free = norm_pfree (percent_fr);
  caml_percent_max = norm_pmax (percent_m);
  caml_init_major_heap (major_heap_size);
  caml_gc_message (0x20, "Initial minor heap size: %luk bytes\n",
                   caml_minor_heap_size / 1024);
  caml_gc_message (0x20, "Initial major heap size: %luk bytes\n",
                   major_heap_size / 1024);
  caml_gc_message (0x20, "Initial space overhead: %lu%%\n", caml_percent_free);
  caml_gc_message (0x20, "Initial max overhead: %lu%%\n", caml_percent_max);
  caml_gc_message (0x20, "Initial heap increment: %luk bytes\n",
                   caml_major_heap_increment / 1024);
}
Ejemplo n.º 3
0
/* [minor_size] and [major_size] are numbers of words
   [major_incr] is either a percentage or a number of words */
void caml_init_gc (uintnat minor_size, uintnat major_size,
                   uintnat major_incr, uintnat percent_fr,
                   uintnat percent_m, uintnat window)
{
  uintnat major_heap_size =
    Bsize_wsize (caml_normalize_heap_increment (major_size));

  CAML_INSTR_INIT ();
  if (caml_init_alloc_for_heap () != 0){
    caml_fatal_error ("cannot initialize heap: mmap failed\n");
  }
  if (caml_page_table_initialize(Bsize_wsize(minor_size) + major_heap_size)){
    caml_fatal_error ("OCaml runtime error: cannot initialize page table\n");
  }
  caml_set_minor_heap_size (Bsize_wsize (norm_minsize (minor_size)));
  caml_major_heap_increment = major_incr;
  caml_percent_free = norm_pfree (percent_fr);
  caml_percent_max = norm_pmax (percent_m);
  caml_init_major_heap (major_heap_size);
  caml_major_window = norm_window (window);
  caml_gc_message (0x20, "Initial minor heap size: %luk words\n",
                   caml_minor_heap_wsz / 1024);
  caml_gc_message (0x20, "Initial major heap size: %luk bytes\n",
                   major_heap_size / 1024);
  caml_gc_message (0x20, "Initial space overhead: %lu%%\n", caml_percent_free);
  caml_gc_message (0x20, "Initial max overhead: %lu%%\n", caml_percent_max);
  if (caml_major_heap_increment > 1000){
    caml_gc_message (0x20, "Initial heap increment: %luk words\n",
                     caml_major_heap_increment / 1024);
  }else{
    caml_gc_message (0x20, "Initial heap increment: %lu%%\n",
                     caml_major_heap_increment);
  }
  caml_gc_message (0x20, "Initial allocation policy: %d\n",
                   caml_allocation_policy);
  caml_gc_message (0x20, "Initial smoothing window: %d\n",
                   caml_major_window);
}
Ejemplo n.º 4
0
void caml_init_gc (uintnat minor_size, uintnat major_size,
                   uintnat major_incr, uintnat percent_fr,
                   uintnat percent_m)
{
    uintnat major_heap_size = Bsize_wsize (norm_heapincr (major_size));

#ifdef DEBUG
    caml_gc_message (-1, "### O'Caml runtime: debug mode ###\n", 0);
#endif

    caml_set_minor_heap_size (Bsize_wsize (norm_minsize (minor_size)));
    caml_major_heap_increment = Bsize_wsize (norm_heapincr (major_incr));
    caml_percent_free = norm_pfree (percent_fr);
    caml_percent_max = norm_pmax (percent_m);
    caml_init_major_heap (major_heap_size);
    caml_gc_message (0x20, "Initial minor heap size: %luk bytes\n",
                     caml_minor_heap_size / 1024);
    caml_gc_message (0x20, "Initial major heap size: %luk bytes\n",
                     major_heap_size / 1024);
    caml_gc_message (0x20, "Initial space overhead: %lu%%\n", caml_percent_free);
    caml_gc_message (0x20, "Initial max overhead: %lu%%\n", caml_percent_max);
    caml_gc_message (0x20, "Initial heap increment: %luk bytes\n",
                     caml_major_heap_increment / 1024);
}