[m-dev.] Performance of collect
Erwan Jahier
Erwan.Jahier at irisa.fr
Mon Sep 25 00:23:23 AEDT 2000
| On 22-Sep-2000, Erwan Jahier <Erwan.Jahier at irisa.fr> wrote:
| > I am still in the process to understand why collect(nop, _) (where nop define
| > a monitor that does nothing) is so slow.
| >
| > Currently, with 11-queens (34 000 000 events) the timings are:
| >
| > off line, no trace info: ~4s
| > mdb ./queens11 < finish: ~20s
| > collect(nop, Result) : ~200s (now)
| > collect(nop, Result) : ~800s (before I move MR_COLLECT_filter to MR_trace_real())
|
| On what architecture?
SunOS cripure 5.7 Generic_106541-12 sun4u sparc SUNW,Ultra-250
| In what grade?
asm_fast.gc
| > If I remove the call to filter in mercury_trace_external: 80s
| >
| > If I remove the call to filter in mercury_trace_external
| > *AND* I remove the save_regs/restore regs statements : 20s
| >
| > So the save_regs/restore regs statements seems to cost me 40s, and the call to
| > *filter_ptr() (which does nothing with nop monitor) seems to cost 120s.
| >
| > Why is this call so expensive?
|
| You're calling from C to Mercury. In our current implementation (LLDS back-end),
| this is fairly expensive.
So what about the HLDS back-end then?
Is it ready to use?
What would be its overhead? I suppose it does not explicitly make use of
registers etc., so there is no need to save and restore them with this back-end
no?
--
R1.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list