all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Hongyi Zhao <hongyi.zhao@gmail.com>
To: Emanuel Berg <moasenwood@zoho.eu>,
	help-gnu-emacs <help-gnu-emacs@gnu.org>
Subject: Re: Too fine design granularity leads to numerous macro/function/command existed in Emacs.
Date: Sat, 14 Aug 2021 09:02:06 +0800	[thread overview]
Message-ID: <CAGP6PO+DsU1jUq16+aWF6R=YZ0HVfPmajSSb8c3VfFfAefZ9zQ@mail.gmail.com> (raw)
In-Reply-To: <878s146emc.fsf@zoho.eu>

On Sat, Aug 14, 2021 at 8:43 AM Emanuel Berg via Users list for the
GNU Emacs text editor <help-gnu-emacs@gnu.org> wrote:
>
> 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?

Another reason I prefer UNIX toolchains is that they have been tried
and tested by many people for many years, and using your own temporary
code may expose you to greater risk of errors. Though I have to bear
some performance losses, but compared with today's fast computers,
this is insignificant in many test scenarios.

> > 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'

See below, but I'm not familiar with this tool, so don't understand
his output very well:

$ sudo perf stat sh -c "awk '{ print length($0) " " $0; }'
american-english-exhaustive  | sort -n | tail -1| cut -d ' ' -f2-"
bash; }' american-english-exhaustive  | sort -n | tail -1| cut -d ' '
-f2-: 1: Syntax error: Unterminated quoted string

 Performance counter stats for 'sh -c awk '{ print length(bash)
bash; }' american-english-exhaustive  | sort -n | tail -1| cut -d ' '
-f2-':

              0.85 msec task-clock                #    0.661 CPUs
utilized
                 0      context-switches          #    0.000 K/sec
                 0      cpu-migrations            #    0.000 K/sec
                62      page-faults               #    0.073 M/sec
         1,012,717      cycles                    #    1.193 GHz
           903,160      instructions              #    0.89  insn per
cycle
           182,165      branches                  #  214.508 M/sec
             8,022      branch-misses             #    4.40% of all
branches

       0.001285545 seconds time elapsed

       0.001390000 seconds user
       0.000000000 seconds sys

Hongyi



  reply	other threads:[~2021-08-14  1:02 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-13  7:12 Too fine design granularity leads to numerous macro/function/command existed in Emacs Hongyi Zhao
2021-08-13  7:25 ` Eli Zaretskii
2021-08-14  0:46   ` Hongyi Zhao
2021-08-14  6:18     ` Eli Zaretskii
2021-08-14  6:29       ` Hongyi Zhao
2021-08-14  7:18         ` Eli Zaretskii
2021-08-14  7:25           ` Hongyi Zhao
2021-08-14  7:47             ` Eli Zaretskii
2021-08-13  7:57 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13  8:34   ` Hongyi Zhao
2021-08-13  8:56     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13  9:20       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13  9:26 ` Arthur Miller
2021-08-13 10:11   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 13:00     ` [OFF TOPIC] Algorithms (was: Re: Too fine design granularity leads to numerous macro/function/command existed in Emacs.) 2QdxY4RzWzUUiLuE
2021-08-13 13:07       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 13:17         ` Yuri Khan
2021-08-13 13:26           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 13:48     ` Too fine design granularity leads to numerous macro/function/command existed in Emacs Arthur Miller
2021-08-13 18:21       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 20:47         ` Arthur Miller
2021-08-13 23:42           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-14  0:24             ` Hongyi Zhao
2021-08-14  0:42               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-14  1:02                 ` Hongyi Zhao [this message]
2021-08-14  2:18                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-14  1:46             ` Arthur Miller
2021-08-13 23:49         ` Hongyi Zhao
2021-08-13 23:54           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 14:15   ` Eli Zaretskii
2021-08-13 14:42     ` Arthur Miller
2021-08-13 15:59       ` Eli Zaretskii
2021-08-13 17:09         ` Arthur Miller
2021-08-13 18:16       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 23:40       ` Hongyi Zhao
2021-08-13 23:45         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 23:57           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-08-13 23:47         ` Emanuel Berg via Users list for the GNU Emacs text editor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGP6PO+DsU1jUq16+aWF6R=YZ0HVfPmajSSb8c3VfFfAefZ9zQ@mail.gmail.com' \
    --to=hongyi.zhao@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=moasenwood@zoho.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.