From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA11164; Thu, 28 Jun 2001 10:17:40 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id KAA11065 for ; Thu, 28 Jun 2001 10:17:39 +0200 (MET DST) Received: from quetelet.bik-gmbh.de (quetelet.bik-gmbh.de [194.233.237.132]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f5S8HVr12298 for ; Thu, 28 Jun 2001 10:17:39 +0200 (MET DST) Received: from hars by quetelet.bik-gmbh.de with local (Exim 3.12 #1 (Debian)) id 15FWyZ-0006ut-00 for ; Thu, 28 Jun 2001 10:16:35 +0200 Date: Thu, 28 Jun 2001 10:16:35 +0200 From: Florian Hars To: caml-list@inria.fr Subject: [Caml-list] Where does Ocaml spend all the time? Message-ID: <20010628101635.A25747@hars> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk I have written an ocaml program, which is about an order of magnitude slower than a similar C program, and now I am wondering what to do. According to gprof, I have neiter written nor called most of the top-scoring functions in my program: % cumulative self self total time seconds seconds calls ms/call ms/call name 9.82 2.76 2.76 9822122 0.00 0.00 Verzeichnis_code_end 9.00 5.29 2.53 3275 0.77 0.77 mark_slice 8.15 7.58 2.29 17860 0.13 0.54 Stra$dfen_e_i_l_rec_129 8.04 9.84 2.26 23232718 0.00 0.00 string_equal 7.44 11.93 2.09 4088 0.51 0.62 sweep_slice 5.73 13.54 1.61 390646 0.00 0.01 oldify 4.16 14.71 1.17 22241546 0.00 0.00 Eintrag_code_begin 3.88 15.80 1.09 Stringhilfsfunktionen_code_begin Only the third and fourth entry seem to do anything "useful", the rest looks like administrative overhead to me. What are these functions doing? Are there any general hints on how to write ocaml programs for efficiency? Like, don't use functional updates for records to reduce garbage? Yours, Florian. ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr