-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.08 switch creation time on raspian - +164% ! #8811
Comments
Maybe related to #8776 ? |
One important difference in 4.08 is the switch to a Menhir-generated parser generator, which generates a To measure this, I would recommend running the following from a clean checkout of the OCaml compiler (on both versions):
(On my machine this takes 8s on 4.08 compared to 2s on 4.07.) @progman1, do you observe a significant difference between 4.07 and 4.08 on the build of the parser? |
I measured the times of various parts of the build on my usual machine, under 4.07 and 4.08.
My take-aways:
|
some numbers on individual compiler/parser invocations that mention ml/mli/mly/mll/cma/cmxa take-away? @nojb has a much faster machine than I! 4.08 world 20m.53 64.58 COMPILING: parsing/parser.ml 4.07 world 14m.58 !? 107.43 COMPILING: ocamldoc link ... 4.08 world.opt 32m21 87.77 COMPILING: parsing/parser.ml 4.07 world.opt 27m.23 97.89 COMPILING: odoc_html.ml |
I haven't looked in details but the overall result don't seem terribly surprising: For the record I tried to bisect a change in compilation time of |
It's probably easier to profile the compiler (and the build process for compiler switches) and find ways to speed it up than to find specific regressions. |
The conclusion seems to be "the Menhir-generated parser takes longer to compile, live with it". If it's correct, I move to close. If there is more to say and investigate, please do. |
The report gave two measurements; the first suggested a very large increase (164%) in compilation time, the second (with detailed numbers) suggests a noticeable but much smaller increase (+18% for world.opt). The second difference is explained by the Menhir-based parser; the first difference remains unexplained but may be a non-reproducible outlier, and we haven't heard back with more measures to help uncover it. I think that this particular issue is dealt with, but it also calls attention to the fact that we don't have any robust metric for compilation speed for the compiler development, and it would be nicer if we had. My main take-away is that it should be someone's* priority to find and manage a volunteer for long-term continuous performance monitoring of the compiler trunk. |
This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc. |
No further progress on this issue, so closing. |
it took so long I thought something was hanging:
4.07.0 25m
4.08.0 66m
is there a known reason for this increase?
The text was updated successfully, but these errors were encountered: