From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?utf-8?Q?Jostein=20Kj=C3=B8nigsen?= Newsgroups: gmane.emacs.devel Subject: Re: Regarding performance issues with the Emacs 25.1 Windows-build Date: Tue, 15 Nov 2016 11:49:27 +0100 Message-ID: <1479206967.3955707.788215361.663DEC5B@webmail.messagingengine.com> References: <1478680445.2214391.782069929.51F43E52@webmail.messagingengine.com> <83shr0fwsu.fsf@gnu.org> <83oa1ofu6u.fsf@gnu.org> <87a8d7f0uo.fsf@russet.org.uk> <83k2cae9gt.fsf@gnu.org> <87h97deo1h.fsf@russet.org.uk> <87vavqxdgh.fsf@russet.org.uk> <831syehw56.fsf@gnu.org> <87wpg6vw5c.fsf@russet.org.uk> <83y40mgccr.fsf@gnu.org> Reply-To: jostein@kjonigsen.net NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="_----------=_147920696739557072" Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1479207048 5560 195.159.176.226 (15 Nov 2016 10:50:48 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 15 Nov 2016 10:50:48 +0000 (UTC) Cc: npostavs@users.sourceforge.net, jostein@kjonigsen.net, emacs-devel@gnu.org To: Eli Zaretskii , Phillip Lord Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Nov 15 11:50:42 2016 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 1c6bJZ-0004uZ-CM for ged-emacs-devel@m.gmane.org; Tue, 15 Nov 2016 11:50:09 +0100 Original-Received: from localhost ([::1]:45408 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c6bJb-000071-2A for ged-emacs-devel@m.gmane.org; Tue, 15 Nov 2016 05:50:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38898) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c6bJ5-0008Gq-Rf for emacs-devel@gnu.org; Tue, 15 Nov 2016 05:49:41 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c6bJ4-0001gY-88 for emacs-devel@gnu.org; Tue, 15 Nov 2016 05:49:39 -0500 Original-Received: from out4-smtp.messagingengine.com ([66.111.4.28]:45763) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c6bIz-0001cn-Of; Tue, 15 Nov 2016 05:49:33 -0500 Original-Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 96D0720977; Tue, 15 Nov 2016 05:49:27 -0500 (EST) Original-Received: from web5 ([10.202.2.215]) by compute1.internal (MEProxy); Tue, 15 Nov 2016 05:49:27 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= secure.kjonigsen.net; h=cc:content-transfer-encoding :content-type:date:from:in-reply-to:message-id:mime-version :references:reply-to:subject:to:x-me-sender:x-me-sender :x-sasl-enc; s=mesmtp; bh=t8wM2Z1O7/zDeLVW5MqZEzV6YWM=; b=LK6ayc VWt0WoFJT7N+PEAZPFe7yXc3qJDK7laYWzhebirgYq6vMJNrP498AV5pGssrteyW VirrfhSeLYFlQmWlvXwl+kCc+OH9IcvkPK9y+xC1aersjc7YU8y+BAN4hZuNotFg uPCrTAuUyYpVk5ZjM38TZ5VYTFI/w1LwJJJZE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :reply-to:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= smtpout; bh=t8wM2Z1O7/zDeLVW5MqZEzV6YWM=; b=Xdx2E9fCcdZ+jy6AB9K/ U6b3fIwsRzdQGdn9Hr4nGbiUOXhxGKFlWURvuQLO2IjylmV/vuhnMPMLPBuo1FJz aDvOajFeTsHGvJd1Xsw7kMEUKQ8wNmXbiaKYnt9oc049cj0iMlU0OMKET/Graw0r 7gxynkWSSc2cWp7/3JcE4cM= X-ME-Sender: Original-Received: by mailuser.nyi.internal (Postfix, from userid 99) id 553EB5A67B; Tue, 15 Nov 2016 05:49:27 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface - ajax-461bce03 In-Reply-To: <83y40mgccr.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.28 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:209413 Archived-At: This is a multi-part message in MIME format. --_----------=_147920696739557072 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Hey everyone. Sorry about the slow response. I've been ill, and haven't had time to test this in a production environment until now. I've got good news and I got bad news. I'll try to be as short and concise as possible. Test setup =3D=3D=3D=3D=3D=3D=3D=3D=3D In my testing, I've taken the provided Emacs 25-build, downloaded the corresponding GNU libraries prebuilt by ezwinports, and combined this output in a common Emacs folder from where I've run my tests. My tool for automating this process is available online[1]. Performance results =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D My quickest attempt to do semi-scientific testing is checking with Windows Performance Recorder, how long a sustained 100% CPU usage period is during startup on my current Emacs-configuration[2]. The results are below: * Emacs 25.1 (Phil's build): 7 seconds * Emacs 25.1 (GNU's release-build): 12 seconds * Emacs 24.5 (GNU's release-build): 7 seconds Phil's build thus has the same performance characteristics as Emacs 24.5 for Windows. And I'd love to say that this was the end of the story... but... I like to do real world testing too :) Functional Regressions =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D I've found functional regressions in Phil's build, especially in what seems to be handling of incoming XML data from inferior processes. This error is not found in the official GNU build currently published for Emacs 25.1, nor in Emacs 24.5. My use-case is fairly simple: * Ensure eslint is installed globally in your environment (Install NodeJS, and then do "npm install -g eslint") * Open a JS-file which should trigger eslint warnings. * Enable flycheck-mode (which in turn will invoke eslint). In this case, opening a file with eslint warnings yields no in-buffer flycheck errors, but instead a error-message in the minibuffer saying something to the extent of this: > Suspicious state from syntax checker javascript-eslint: Flycheck > checker javascript-eslint returned non-zero exit code 1, but its > output contained no errors: 8"?> line=3D"13" column=3D"7" severity=3D"error" message=3D"'tsify' = is > assigned a value but never used. (no-unused-vars)" source=3D"eslint.rules= .no-unused- > vars" /> message=3D"Strings must use doublequote. (quotes)" > source=3D"eslint.rules.quotes" /> severity=3D"error" message=3D"Strings must use doublequote. (quotes)" > source=3D"eslint.rules.quotes" /> Is Emacs not able to load libxml? Are DLLs linked correctly? Is there any way I can help and do diagnostics on my end? This seems like a symptom of a pretty critical issue which will needs to be resolved before any new release-build can be published. Let me know how I can help. References: [1] https://github.com/josteink/machine-build/blob/master/tools/emacs-win32= -bootstrap.cmd [2] https://github.com/josteink/machine-build/blob/master/dotfiles/emacs/do= t-emacs.el -- Jostein Kj=C3=B8nigsen =F0=9F=A5=93 jostein@kjonigsen.net / jostein@secure.kjonigsen.net / jostein@gmail.com https://jostein.kjonigsen.net On Mon, Nov 14, 2016, at 07:12 PM, Eli Zaretskii wrote: >> From: phillip.lord@russet.org.uk (Phillip Lord) >> Cc: emacs-devel@gnu.org, jostein@kjonigsen.net, >> npostavs@users.sourceforge.net >> Date: Mon, 14 Nov 2016 16:55:27 +0000 >> >> Eli Zaretskii writes: >> >>> It's okay. In general, if you don't strip the binaries, it would be >>> better to also include -g3 in CFLAGS (so that there's debug info >>> there, and reports about crashes can be accompanied by meaningful >>> information), but for a release it is less important than for a >>> pretest, so I see no need for yet another build. >> >> Confused? You mean to have four builds in total? > > No, of course not. Just 2: one for x86, the other x86_64. > >> Or you want me to configure with: >> >> CFLAGS=3D"-O2 -static -g3" > > That's the best if you don't strip the binaries, yes. > > Thanks, and sorry for the confusion I caused. --_----------=_147920696739557072 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"
Hey everyone.

Sorry about the slow response. I've been ill, and haven't had time to = test this in a production environment until now.

I've got good news and I got bad news. I'll try to  be as short a= nd concise as possible.


Test setup
=3D=3D=3D=3D=3D=3D=3D=3D=3D

In my testing, I've taken the provided Emacs 25-build, downloaded the = corresponding GNU libraries prebuilt by ezwinports, and combined this outpu= t in a common Emacs folder from where I've run my tests.

My tool for automating this process is available online[1].


Performance results
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

My quickest attempt to do semi-scientific testing is checking with Win= dows Performance Recorder, how long a sustained 100% CPU usage period is du= ring startup on my current Emacs-configuration[2].

The results are below:

  • Emacs 25.1 (Phil's build): 7 seconds
  • Emacs 25.1 (GNU's = release-build): 12 seconds
  • Emacs 24.5 (GNU's release-build): 7 = seconds

Phil's build thus has the same performance characteristics as Emacs 24= .5 for Windows.

And I'd love to say that this was the end of the story... but... I lik= e to do real world testing too :)


Functional Regressions
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

I've found functional regressions in Phil's build, especially in what = seems to be handling of incoming XML data from inferior processes. This err= or is not found in the official GNU build currently published for Emacs 25.= 1, nor in Emacs 24.5.

My use-case is fairly simple:

  • Ensure eslint is installed globally in your environment
    (Install= NodeJS, and then do "npm install -g eslint")
  • Open a JS-file which = should trigger eslint warnings.
  • Enable flycheck-mode (which in = turn will invoke eslint).

In this case, opening a file with eslint warnings yields no in-buffer = flycheck errors, but instead a error-message in the minibuffer saying somet= hing to the extent of this:

Suspicious state from syntax checker javascript-eslint: Fl= ycheck checker javascript-eslint returned non-zero exit code 1, but its out= put contained no errors: <?xml version=3D"1.0" encoding=3D"utf-8"?>&l= t;checkstyle version=3D"4.3"><file name=3D"--redacted--"><error= line=3D"13" column=3D"7" severity=3D"error" message=3D"&apos;tsify&= ;apos; is assigned a value but never used. (no-unused-vars)" source=3D"esli= nt.rules.no-unused-vars" /><error line=3D"130" column=3D"37" severity= =3D"error" message=3D"Strings must use doublequote. (quotes)" source=3D"esl= int.rules.quotes" /><error line=3D"130" column=3D"44" severity=3D"err= or" message=3D"Strings must use doublequote. (quotes)" source=3D"eslint.rul= es.quotes" /></file></checkstyle>

Is Emacs not able to load libxml? Are DLLs linked correctly? Is there = any way I can help and do diagnostics on my end?

This seems like a symptom of a pretty critical issue which will needs = to be resolved before any new release-build can be published. Let me know h= ow I can help.


References:




On Mon, Nov 14, 2016, at 07:12 PM, Eli Zaretskii wrote:
From: phillip.lord@russet.org.uk (Phillip Lord)
Date: Mon, 14 Nov 2016 16:55:27 +0000

Eli Zaretskii <eliz@gnu.org>= writes:

It's okay.  In general, if you don't strip the binari= es, it would be
better to also include -g3 in CFLAGS (so that there's debug info
there, and reports about crashes can be accompanied by meaningful
<= /div>
information), but for a release it is less important than for a
pretest, so I see no need for yet another build.

Confused? You mean to have four builds in total?

No, of course not.  Just 2: one for x86, the other x86_64.

Or you want me to configure with:

CFLAGS=3D"-O2 -static -g3"

That's the best if you don't strip the binaries, yes.

Thanks, and sorry for the confusion I caused.

--_----------=_147920696739557072--