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: Too fine design granularity leads to numerous macro/function/command existed in Emacs. Date: Sat, 14 Aug 2021 02:42:35 +0200 Message-ID: <878s146emc.fsf@zoho.eu> References: <87czqh3b8u.fsf@zoho.eu> <87eeax6w9t.fsf@zoho.eu> <871r6w7vyi.fsf@zoho.eu> 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="20767"; 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:9/OSP4PTDADmoD4Yog90E3Lj/FA= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Aug 14 02:43:15 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 1mEhla-0005Ct-4g for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 14 Aug 2021 02:43:14 +0200 Original-Received: from localhost ([::1]:55034 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mEhlY-0005oe-C5 for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 13 Aug 2021 20:43:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33050) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mEhlE-0005oH-D4 for help-gnu-emacs@gnu.org; Fri, 13 Aug 2021 20:42:52 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:47532) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mEhlA-0001aX-61 for help-gnu-emacs@gnu.org; Fri, 13 Aug 2021 20:42:52 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mEhl7-0004od-Mu for help-gnu-emacs@gnu.org; Sat, 14 Aug 2021 02:42:45 +0200 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:132521 Archived-At: Hongyi Zhao wrote: > It's not difficult for me or maybe some others, just too > lazy to think for a while. A lot of people like to think their lack of [whatever] is because of laziness, however as for thinking of new reasons to be lazy, the sure are hard at work. (I don't think that applies to you but be careful with that word.) > After all, we have so many > convenient uinx tools and the excellent (but with > performance penalty) pipe method at hand. Anyway, I've > presented a comparison between pure AWK and UNIX toolchains > as follows: > > $ time awk 'length > max_length { max_length = length; longest_line = > $0 } END { print longest_line }' american-english-exhaustive > correspond with someone about someone or something correspond with > someone about someone or something OK, great, so you got the one-liner to work, what did you change? > real 0m0.255s > user 0m0.255s > sys 0m0.003s > > $ time awk '{ print length($0) " " $0; }' american-english-exhaustive > | sort -n | tail -1| cut -d ' ' -f2- > correspond with someone about someone or something correspond with > someone about someone or something > > real 0m1.794s > user 0m1.853s > sys 0m0.053s > > Obviously, the former is about 6 times faster than the latter. Cool, try my command as well: $ awk '{ print length($0) " " $0; }' $file | sort -n | tail -1 The reason the piped commands are slower are because of the context-switches so instead of time(1) try this command for all three: $ perf stat sh -c 'COMMAND' -- underground experts united https://dataswamp.org/~incal