From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Le Wang Newsgroups: gmane.emacs.devel Subject: Re: fix for bug 10994 breaks ido customizations in major way Date: Sat, 4 May 2013 21:00:15 +0800 Message-ID: References: <87ip2zm89w.fsf@wanadoo.es> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=f46d043893cd848a1204dbe40ca7 X-Trace: ger.gmane.org 1367672428 32329 80.91.229.3 (4 May 2013 13:00:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 4 May 2013 13:00:28 +0000 (UTC) Cc: Leo Liu , emacs-devel@gnu.org To: =?ISO-8859-1?Q?=D3scar_Fuentes?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat May 04 15:00:27 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UYc4f-0005gR-Vs for ged-emacs-devel@m.gmane.org; Sat, 04 May 2013 15:00:26 +0200 Original-Received: from localhost ([::1]:56568 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UYc4f-0007ur-Mw for ged-emacs-devel@m.gmane.org; Sat, 04 May 2013 09:00:25 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:56354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UYc4a-0007uD-E9 for emacs-devel@gnu.org; Sat, 04 May 2013 09:00:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UYc4W-0001Fz-UM for emacs-devel@gnu.org; Sat, 04 May 2013 09:00:20 -0400 Original-Received: from mail-wi0-x22b.google.com ([2a00:1450:400c:c05::22b]:58802) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UYc4W-0001Fo-My for emacs-devel@gnu.org; Sat, 04 May 2013 09:00:16 -0400 Original-Received: by mail-wi0-f171.google.com with SMTP id l13so1357647wie.16 for ; Sat, 04 May 2013 06:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=U5R7S+dpIdHIMNUAapecmyoMrZCemJZ2ZVhwAnKut0Y=; b=SH6LKnoRjSmcMpmoTALVwdOvvoJ715nk4FaTPyjonXvHQiOdneBFa9WLc9JcOQ1w7R 0AqN0TihS5Hwqme6oumAcT9hbMl7nkbESHqJhQPKYCTl+8kVTnMlcFb/286rDacbaXFy FWkOOy2qKzOa8Mt/SkFobTiP9nRCptfAeXrzrDQOL7B8hScwQI1RsvmXsCxXvaXIvNnB EVQFwVuZWDCayUqbCKvewIktPe4Md7FnwnuUM0Gxen+GwMVUYlIRVU+km9u1HAiddsuB 2UUfD1V0fbIErZgQtixOVWyYESwAOZjagcl8Gn2w4xUhEiMkCHq94FdXlRroiSxWYuH6 mg2A== X-Received: by 10.180.73.228 with SMTP id o4mr1993814wiv.12.1367672415879; Sat, 04 May 2013 06:00:15 -0700 (PDT) Original-Received: by 10.217.116.8 with HTTP; Sat, 4 May 2013 06:00:15 -0700 (PDT) In-Reply-To: <87ip2zm89w.fsf@wanadoo.es> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::22b X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:159291 Archived-At: --f46d043893cd848a1204dbe40ca7 Content-Type: multipart/alternative; boundary=f46d043893cd848a0e04dbe40ca5 --f46d043893cd848a0e04dbe40ca5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Sat, May 4, 2013 at 4:58 PM, =D3scar Fuentes wrote: > This change introduces a serious slowdown which is noticeable for large > candidate lists (try with 10000 elements.) The slowdown happens on every > invocation. > > It is obvious that having duplicate candidates makes no sense, but at > the same time scanning the list in advance for all duplicates is > expensive. The only way to introduce list with dupes is ido-completing-read (i.e. it's not an issue for files and buffers), so I think it's okay to remove dupes just once on entry. Patch atached. --=20 Le --f46d043893cd848a0e04dbe40ca5 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Sat, May 4, 2013 at 4:58 PM, =D3scar Fuentes <ofv@wanado= o.es> wrote:
This change introduces a serious slowdown which is noticeable for large
candidate lists (try with 10000 elements.) The slowdown happens on every invocation.

It is obvious that having duplicate candidates makes no sense, but at
the same time scanning the list in advance for all duplicates is
expensive.

The only way to introduce = list with dupes is ido-completing-read (i.e. it's not an issue for file= s and buffers), so I think it's okay to remove dupes just once on entry= .

Patch atached.


--
Le
--f46d043893cd848a0e04dbe40ca5-- --f46d043893cd848a1204dbe40ca7 Content-Type: application/octet-stream; name="ido-remove-dups2.diff" Content-Disposition: attachment; filename="ido-remove-dups2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hgasjnei0 ZGlmZiAtLWdpdCBhL2xpc3AvaWRvLmVsIGIvbGlzcC9pZG8uZWwKaW5kZXggYmVkZjAwZS4uMTVl MjgwZSAxMDA2NDQKLS0tIGEvbGlzcC9pZG8uZWwKKysrIGIvbGlzcC9pZG8uZWwKQEAgLTMxNTks OCArMzE1OSw3IEBAIFVzZSBgZXEnIGZvciBjb21wYXJpc29uLiIKIAkoc29mYXIgbmlsKSkKICAg ICAod2hpbGUgKG5vdCByZXQpCiAgICAgICAoc2V0cSBuZXh0IChjYXIgaXRlbXMpKQotICAgICAg OzsgVXNlIGBlcScgdG8gYXZvaWQgYnVnIGh0dHA6Ly9kZWJidWdzLmdudS5vcmcvMTA5OTQKLSAg ICAgIChpZiAoZXEgbmV4dCBlbGVtKQorICAgICAgKGlmIChlcXVhbCBuZXh0IGVsZW0pCiAJICAo c2V0cSByZXQgKGFwcGVuZCBpdGVtcyAobnJldmVyc2Ugc29mYXIpKSkKIAk7OyBlbHNlCiAJKHBy b2duCkBAIC00Nzk1LDcgKzQ3OTQsNyBAQCBERUYsIGlmIG5vbi1uaWwsIGlzIHRoZSBkZWZhdWx0 IHZhbHVlLiIKIAkoaWRvLWRpcmVjdG9yeS1ub25yZWFkYWJsZSBuaWwpCiAJKGlkby1kaXJlY3Rv cnktdG9vLWJpZyBuaWwpCiAJKGlkby1jb250ZXh0LXN3aXRjaC1jb21tYW5kICdpZ25vcmUpCi0J KGlkby1jaG9pY2UtbGlzdCBjaG9pY2VzKSkKKyAgICAgICAgKGlkby1jaG9pY2UtbGlzdCAoZGVs ZXRlLWR1cHMgY2hvaWNlcykpKQogICAgIDs7IEluaXRpYWxpemUgaWRvIGJlZm9yZSBpbnZva2lu ZyBpZG8tcmVhZC1pbnRlcm5hbAogICAgIChpZG8tY29tbW9uLWluaXRpYWxpemF0aW9uKQogICAg IChpZG8tcmVhZC1pbnRlcm5hbCAnbGlzdCBwcm9tcHQgaGlzdCBkZWYgcmVxdWlyZS1tYXRjaCBp bml0aWFsLWlucHV0KSkpCg== --f46d043893cd848a1204dbe40ca7--