From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: How should this profiler report interpreted? Date: Fri, 26 Mar 2021 18:58:45 +0100 Message-ID: <87ft0hiyp6.fsf@zoho.eu> References: Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31547"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:6F/VEWSZ3DOc6NqC5oVR1bIhgHY= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Mar 26 18:59:28 2021 Return-path: Envelope-to: geh-help-gnu-emacs@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 1lPqk2-00083b-MP for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 26 Mar 2021 18:59:26 +0100 Original-Received: from localhost ([::1]:34236 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPqk1-0003vK-8N for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 26 Mar 2021 13:59:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51620) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lPqjX-0003ux-1w for help-gnu-emacs@gnu.org; Fri, 26 Mar 2021 13:58:55 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:42504) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lPqjV-0001xr-Es for help-gnu-emacs@gnu.org; Fri, 26 Mar 2021 13:58:54 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lPqjT-0007Ek-Hz for help-gnu-emacs@gnu.org; Fri, 26 Mar 2021 18:58:51 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:128654 Archived-At: scame wrote: >> To me it looks like it means the tool isn't up for the job >> :) Interesting question BTW! How did you do it, exactly? > > I process a generated file where certain lines are connected > by an id. I extract the id from a line, then search > backwards for the matching line using the extracted id and > there I insert the line after the matching line in the file. Sounds like relational algebra, almost. To what extent can you do that in Elisp? Need SQL? Well, obviously you can do everything in Elisp... > ... > (while (looking-at "INSERT INTO `test2`.+,\\([0-9]+\\));") > (let ((item (match-string 1)) > (line (buffer-substring (line-beginning-position) (line-end-position)))) > (message item) > (save-excursion > (re-search-backward (concat "INSERT INTO `test1`.+" > "VALUES ([^,]+,'[^']*','[^']*','[^']*','[^']*',[^,]+,[^,]+," > item > ",")) > (end-of-line) > (insert "\n" line)) > (delete-region (line-beginning-position) (1+ (line-end-position))) > ))) :) Very nice. > This is the save-excursion which takes 99% CPU and > very slow. Well, these regexps in a loop - working on a huge file - which you are modifying as you go along - is that why `save-excursion' gets so expensive, some Gordian knot that needs to be cut up by - Julius Caesar - Che Guevara - Alexander the Great? - but just keeps tying itself back? > I probably could change up the code bit, so the problem does > not appear, but I'm curious what the problem is here. Is it > a bug? What happens if you try your code on a very small data file? -- underground experts united https://dataswamp.org/~incal