You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 1183 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
So in the second case, every single allocation leads to a major
collection. In fact, execution takes much longer. This happens with
Ocaml 3.02 and 3.04. Trying the current CVS version (June 5), I get
I found that optimized code in some cases takes much longer than
byte code, and has strange gc statistics. The simplest case is as
follows:
Thanks for the interesting test case. There was indeed a bug in the
GC interface for ocamlopt-generated code: namely, the runtime system
sometimes simulates a "minor heap is full" condition in order to
trigger a garbage collection early, and in your particular example
this condition was not reset properly by the garbage collection,
causing the minor heap to appear full for the duration of your
program. This will be fixed shortly.
Original bug ID: 1183
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Full_Name: Winfried Dreckmann
Version: 3.04
OS: Suse Linux 6.4 PowerPC
Submission from: t4o960p112.telia.com (195.252.61.232)
I found that optimized code in some cases takes much longer than byte code, and
has strange gc statistics. The simplest case is as follows:
file "test.ml"
let main () =
let foo =
Array.init 100000 (fun i -> String.make 1 'x')
in
Gc.print_stat stdout;
exit 0;;
main ();;
Compiling with ocamlc and ocamlopt,
I get the following output:
So in the second case, every single allocation leads to a major
collection. In fact, execution takes much longer. This happens with
Ocaml 3.02 and 3.04. Trying the current CVS version (June 5), I get
What is going on?
The text was updated successfully, but these errors were encountered: