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 GAA28849; Fri, 2 May 2003 06:30:09 +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 GAA29324 for ; Fri, 2 May 2003 06:30:07 +0200 (MET DST) Received: from igw2.watson.ibm.com (igw2.watson.ibm.com [129.34.20.6]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h424U6H27320 for ; Fri, 2 May 2003 06:30:06 +0200 (MET DST) Received: from sp1n293en1.watson.ibm.com (sp1n293en1.watson.ibm.com [9.2.112.57]) by igw2.watson.ibm.com (8.11.7/8.11.4) with ESMTP id h424U4T118352; Fri, 2 May 2003 00:30:04 -0400 Received: from nautilus-chet.watson.ibm.com (sig-9-65-68-57.mts.ibm.com [9.65.68.57]) by sp1n293en1.watson.ibm.com (8.11.7/8.11.4) with ESMTP id h424U4o889036; Fri, 2 May 2003 00:30:04 -0400 Received: from maine (maine [127.0.0.1]) by nautilus-chet.watson.ibm.com (8.12.5/8.12.5/Debian-1) with ESMTP id h3RJ47xM007576; Sun, 27 Apr 2003 15:04:08 -0400 Message-Id: <200304271904.h3RJ47xM007576@nautilus-chet.watson.ibm.com> To: Lex Stein cc: Ocaml Mailing List Subject: Re: [Caml-list] comparison with C performance In-Reply-To: Your message of "Thu, 01 May 2003 14:38:24 EDT." References: <1051811713.25152.1.camel@car.pixar.com> Date: Sun, 27 Apr 2003 15:04:07 -0400 From: Chet Murthy X-Spam: no; 0.00; chet:01 murthy:01 caml-list:01 ahem:01 caml:01 trivial:01 stack:02 comparison:02 ensemble:03 lex:04 complicated:04 buffers:05 watson:05 hmmm:05 cheers:06 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hmmm .. Lex, are you aware of Ensemble? Mark Hayden basically proved that if you properly manage memory and a few other things, well, you can be faster than C, unless the C program is (ahem) trivial. some more details: Mark showed that for a rather complicated network protocol stack, a CAML implementation was a *lot* faster than a highly-optimized C implementation. The key things he was able to do were: (a) since its in ML, you can be a lot more aggressive about optimization (b) effective memory-management of buffers in ML -- don't just leave it to the GC (c) serious reliance on the inliner There were a few other things, but this is a good start. Cheers, --chet-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners