From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?=C3=93scar_Fuentes?= Newsgroups: gmane.emacs.devel Subject: Some experience with the igc branch Date: Sun, 22 Dec 2024 16:40:45 +0100 Message-ID: <87o713wwsi.fsf@telefonica.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2990"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:zDLq9ls//WTiIplmxkJswhuXIsc= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Dec 22 17:23:55 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tPOkE-0000hL-O9 for ged-emacs-devel@m.gmane-mx.org; Sun, 22 Dec 2024 17:23:54 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tPOiv-0007ta-Gm; Sun, 22 Dec 2024 11:22:33 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tPO4h-0001sS-SO for emacs-devel@gnu.org; Sun, 22 Dec 2024 10:40:59 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tPO4g-0005lr-48 for emacs-devel@gnu.org; Sun, 22 Dec 2024 10:40:59 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1tPO4c-00026V-Oq for emacs-devel@gnu.org; Sun, 22 Dec 2024 16:40:54 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.167, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 22 Dec 2024 11:22:31 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:326862 Archived-At: I've using the igc branch for the past weeks. It was mostly Dart/Flutter development with lsp-dart / lsp-mode enabled, with all its default features enabled. On top of that, I use the flx completion algorithm. This setup puts a lot of stress on GC. To illustrate, on master Emacs after setting garbage-collection-messages to t, one can see that simply writing a few characters triggers GC several times, each with its corresponding pause, which may be very noticeable ("uh! that keypress didn't register... wait, there it is.") The experience is not great. Quite miserable, I would say. People suggest playing with gc-cons-threshold (I have mine set to 10'000'000) but those tricks simply make things a bit less awful. With igc the pauses are still there, but they much shorter and predictable, they no longer distract me from thinking on what I'm writing, which is a huge improvement. I suspect that some of those pauses are not related to garbage collection (executing code and moving data also takes time.) TL/DR: now I enjoy using Emacs with this setup and I'm no longer tempted to switch to other editors for this type of work. A big thank you to all involved on this feature.