From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?UTF-8?Q?Cl=c3=a9ment_Pit-Claudel?= Newsgroups: gmane.emacs.devel Subject: Re: Emacs Lisp JIT Compiler Date: Wed, 15 Aug 2018 22:14:29 -0400 Message-ID: <0527d882-5879-bfe9-bf3a-57769c983e10@gmail.com> References: <87va8ej4o1.fsf@tromey.com> <17e1d5ea-d8f7-9c94-979b-e89d119fe72c@gmail.com> <877ekri21o.fsf@tromey.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1534385558 5594 195.159.176.226 (16 Aug 2018 02:12:38 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 16 Aug 2018 02:12:38 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 Cc: emacs-devel@gnu.org To: Tom Tromey Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Aug 16 04:12:34 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fq7m0-0001HB-VV for ged-emacs-devel@m.gmane.org; Thu, 16 Aug 2018 04:12:29 +0200 Original-Received: from localhost ([::1]:53095 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fq7o7-0006GE-Dj for ged-emacs-devel@m.gmane.org; Wed, 15 Aug 2018 22:14:39 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fq7o0-0006G6-NZ for emacs-devel@gnu.org; Wed, 15 Aug 2018 22:14:33 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fq7nz-0008RG-Uw for emacs-devel@gnu.org; Wed, 15 Aug 2018 22:14:32 -0400 Original-Received: from mail-yw1-xc32.google.com ([2607:f8b0:4864:20::c32]:38656) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fq7nz-0008Qz-PQ for emacs-devel@gnu.org; Wed, 15 Aug 2018 22:14:31 -0400 Original-Received: by mail-yw1-xc32.google.com with SMTP id r3-v6so2393521ywc.5 for ; Wed, 15 Aug 2018 19:14:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=YdaiueISw9n6VcEfAnw5qsFWwz0zYnlgxjNbV9FF7yw=; b=juYb6tEMpI6S2izxUmUYDc/seLb0Dll8Av6tEbLlQhkh5sHs7iw53N4GfXKxX131dw vzkaA14SDm9NQM15sbYGCWLOI4r4B7lqj3wJhE4YQ8Qm5ESbKR0oBVF3BjvD2KnH2IMs 2m7jXsFs6vBTaXM4vd+2LA3WnYqTx1265O8Zc4oj85vWVPvkkLC0d3TcK7SbRixmdAkp 0s1R59VQ2OPbZDX1xbazwXfwE/XZuFb1uis8W2ZazZdfGiNCHe5gRAF5QPU/BBwo8Jhr EoKfKQqrnENY3lliJTogDb/eU1o4nzys8t8d6w3ud/50hOdgqPPcrvxlFp5WnMkqLCOa xyzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=YdaiueISw9n6VcEfAnw5qsFWwz0zYnlgxjNbV9FF7yw=; b=iKAMVIMcXXSQof6ckY6t+qwnYYOOzEFkG46MucB55sllGjSP2A7olmucrsqRq+r4WL jUJpBb/Wn+ArjNhp6ZeFmHLiQKa/DHYxcEQTHSHBv7AGqRWPZpDVRARXLbtR5ftNXCJn 9YCbsBytKJGjOzqW2+FpHg2rWpRkJo1uHVLEF6A+5D6EBs5QnaSBO9DUDEcMMN8ElKfI wscNbBnxZgfr8AbMujff+lNwNmSQaTe6P9EFnFx2DqtHP2LwqgA599uKhYPrNvQZXPKP VPfK1vOl5htO+FZAZPmDfzlY7azNBbl1id/IUbts7pH1T4mW7ZBJ5NIeNHTbVgq0FQwI Zlmg== X-Gm-Message-State: AOUpUlEwuleUGWLBqUDgPFoofpuz3+k9EKWwZalmA6fT/F0ezipXOM4z yWHAlq6JBlDob1FD+zXb2hVAiIuM X-Google-Smtp-Source: AA+uWPwxTtCOsYalOFbhmH4gguESkv7oxpom0V4/NkQlOyfp3tPVdT5bHZSCFZJ411DjRozYUEXgsQ== X-Received: by 2002:a81:5556:: with SMTP id j83-v6mr16339433ywb.134.1534385670652; Wed, 15 Aug 2018 19:14:30 -0700 (PDT) Original-Received: from ?IPv6:2601:184:4180:66e7:2926:32b1:2ae2:6113? ([2601:184:4180:66e7:2926:32b1:2ae2:6113]) by smtp.gmail.com with ESMTPSA id h65-v6sm10238497ywe.75.2018.08.15.19.14.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Aug 2018 19:14:30 -0700 (PDT) In-Reply-To: <877ekri21o.fsf@tromey.com> Content-Language: en-GB X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::c32 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:228579 Archived-At: On 2018-08-15 20:32, Tom Tromey wrote: >>>>>> "Clément" == Clément Pit-Claudel writes: > > Clément> I compiled and installed libjit, and things seem to build fine here. > > Thank you for trying it. > > Clément> Benchmarking a simple loop yields an impressive 4x speedup (from 1 > Clément> second down to 0.25s). However, benchmarking a larger application > Clément> seems to yield a 30% slowdown (from 5.5s to 7.5s). I haven't > Clément> investigated why yet. Have you seen similar variations? > > I have not really done that much benchmarking. > However, please send me your test case (or tell me what it is) and I > will take a look. Hi Tom, My simple benchmark was this, and wow did that get fast: ;; -*- lexical-binding: t; -*- (defun test () (let ((sum 0)) (dotimes (n (* 15 1000 1000)) (setq sum (+ sum 1)) (setq sum (- sum 1)) (setq sum (+ sum 1)) (setq sum (- sum 1)) (setq sum (+ sum 1))) sum)) My application benchmark that got a bit slower is essentially fontifying and exporting to LaTeX about 200k lines of Python code. The app is at https://github.com/cpitclaudel/esh. If you clone it you can run this: # Generate test data cd /usr/lib/python3.5/; cat turtle.py inspect.py doctest.py pydoc.py tarfile.py pickletools.py argparse.py > /tmp/bench.py # Run the benchmark time EMACS=/build/emacs/master/src/emacs bin/esh2tex --standalone /tmp/bench.py The EMACS= part is needed because ESH starts an Emacs server in the background. Cheers and thanks for your work! Clément.