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: Why does adding a useless copy-sequence and discarding the result make my ELisp 40 times faster? Date: Sat, 25 Mar 2017 09:54:15 -0400 Message-ID: References: <77900613-3b45-52f4-5770-38fe6f27e69c@gmail.com> <871stlhbve.fsf@luca> 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 1490450086 30596 195.159.176.226 (25 Mar 2017 13:54:46 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 25 Mar 2017 13:54:46 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Cc: Emacs developers To: Andreas Politz Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Mar 25 14:54:40 2017 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 1crm9A-0005dC-Cn for ged-emacs-devel@m.gmane.org; Sat, 25 Mar 2017 14:54:24 +0100 Original-Received: from localhost ([::1]:37436 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1crm9D-0006bd-2v for ged-emacs-devel@m.gmane.org; Sat, 25 Mar 2017 09:54:27 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57025) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1crm96-0006bY-06 for emacs-devel@gnu.org; Sat, 25 Mar 2017 09:54:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1crm92-0000Gx-RQ for emacs-devel@gnu.org; Sat, 25 Mar 2017 09:54:20 -0400 Original-Received: from mail-qk0-x22c.google.com ([2607:f8b0:400d:c09::22c]:36023) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1crm92-0000Gr-NM for emacs-devel@gnu.org; Sat, 25 Mar 2017 09:54:16 -0400 Original-Received: by mail-qk0-x22c.google.com with SMTP id p22so10587543qka.3 for ; Sat, 25 Mar 2017 06:54:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=RJh1QtAoNq1W0NAvS7ifttLbZTXXL05B+fwmeh1x0gs=; b=Vasmx7+LfW2GTQZeZOuPLymYPIs/40/sEG6Roxh3UA/oTW+r80PKsFKeYURjvFJQrr jshE3ut6CNdf+GJaXf5lKizaNOJV76yYXfssjMQ+/F+AqSyAvULlVhqGUgk8Dqjprr1u CqAE1evZoqhdqSBLE60x4i1lpaoD53Ychn5l0x1HzEIB3pwvMpLxDdtn5eWvmNj7s4hF YuJ7Vk3U9O3DiqtsVg+WzZRJJ4B3qLz9hGD2hV7bkhxDGap6xrLZ2bouz00mpg6oJTpW ChPFdOF4QCEmLYpmZa07UZxCRvW+cLmPOmiJ/P7VpK78Odnpmsadkiab5egT9q5qKXUR fbNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=RJh1QtAoNq1W0NAvS7ifttLbZTXXL05B+fwmeh1x0gs=; b=El9E2N6GmP8C1nJ5beFXjRiJwcjxUJECzVNQFYWBOruRigILsMPWzxJEcx5w+cxxyB qenhNkk8sSY4Ph/syQtfE928aUylP4uwCFpImXeRZiO43iAGS6jVAqujHQLwg7so7Hy7 3oOZHvrBWVishRrW7RGLEXM1hj7KulA+YRE9lW00H6Q5yDMs3nuTX7yuY90U3FevD9Tb qSXbCRs4Vl8mvCMkextKqmpbIzql9h01FWOw4/8m+7bDSMrLILZcpLhKA2+VZzvd0+Lf yViOkUroJMh3pkAfltNPi4eKHLADTa5b0/F97mGawPwoOvxpYVFxRbTp7UOXQIU7/33/ BgWg== X-Gm-Message-State: AFeK/H22ySR3ePD6BNIE50E2RhKMJ6IfCjkQXbw2D0dzVBkP9rX+Z3smcOHIl/H/j9icbA== X-Received: by 10.55.43.23 with SMTP id r23mr11545343qkh.147.1490450055992; Sat, 25 Mar 2017 06:54:15 -0700 (PDT) Original-Received: from [18.189.26.125] (dhcp-18-189-26-125.dyn.MIT.EDU. [18.189.26.125]) by smtp.gmail.com with ESMTPSA id t12sm3751277qke.9.2017.03.25.06.54.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 25 Mar 2017 06:54:15 -0700 (PDT) In-Reply-To: <871stlhbve.fsf@luca> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400d:c09::22c 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:213338 Archived-At: On 2017-03-25 06:47, Andreas Politz wrote: > Clément Pit-Claudel writes: > >> On 2017-03-25 00:06, Clément Pit-Claudel wrote: >>> * Why does running additional, supposedly useless code speed things up so much? (1) >> >> Interestingly, it turns out that (copy-sequence) isn't needed: >> instead, it's enough to use (sleep-for 0.000001) (or even (sleep-for >> cl-least-positive-normalized-float)) to get the 40x speedup. > > What about this explanation: If you make Emacs wait inside the loop, it > can send some of the strings immediately. Otherwise, it'll have to > store them all/some in memory first. Possibly! But does this theory explain the following ((3) in my original email)? (benchmark-send-string t 200 65536 "read") → (0.18765710700000002 46 0.14072835099999995) (benchmark-send-string nil 200 65536 "read") → (3.397287521 0 0.0) (benchmark-send-string t 1600 8192 "read") → (0.258897164 49 0.17045154200000004) (benchmark-send-string nil 1600 8192 "read") → (0.07095391 0 0.0) Sending 1600 strings of length 8192 with or without sleeps is much faster than sending 200 strings of length 65536. Thanks for your ideas! Clément.