From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 15020 invoked from network); 23 Jan 2023 14:24:52 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 23 Jan 2023 14:24:52 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1674483892; b=kAUYN22m64qTb2PDj+TGMHUqxqMNysJ+KZRz2QeUSTYatbozutgAkoFVVQkY2EK8Rap/ZmPWAm lVNw6cZ6SMNbTJSm4vcEdFTAX+ee1on1i5OYldklLaWKlofJ2TW4mKJ5TLLb/XgUOktYDqcMTk 7kRyJ1Rp+LtTTeqfVfmcgX925woF01A5KK4vt7I6Cp/79jKsuvqI30c5bgAowOelMLfyYAGIUJ mywBLzPd+wikx5Iu4IhOZD/UiOp0INwucQKSUf2m5qL1NYwhG1HQ39QgwFsex/4K4lTv1Hba5V lrn+km/Q7dqcYOEmYSqwAJPBcsPgV/TZc87awAwK4eWO8Q==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lf1-f48.google.com) smtp.remote-ip=209.85.167.48; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1674483892; bh=n6PcOm1w9f6lh7X6Wi6GboHFjTTPFoXPrvvVoEM/jv0=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=D8z17mxBj1Q/sz0loJD1G7lSBWIRPTGgDk4IoWn9LA1eEykbTEnKo4I1fEwgzU+omszzc9imue 0zwqFXsi3RPIxuWDIgIdbSLdoOQuRidCsArLJx4Q0QWuGWo6RW80x/xXmx2n20n2D2Qey2BTPA CtbujeVj0BHa89u2rEw0ZlV5O1UDhHyd0W7BEsF0TRd/2VJJnDSkjWd/b+ehUFadRb0CLYRYZY AfYwvlglverODSEsg3yt8CDEb8h3Dnuwa9TE9XcF4O9IiXvvb3+62dZISvaezKOzKQiu6izwG1 CznlOGwgoM1UN0im01IOrfU2lsQLCQmN7a5av+sR39z/yQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=TlHYs+EFt5gpa59W1B+UCBO+7+2Ba/CzLsmksDEEkqw=; b=XDL5Cmm3gsGNLTawWRtuHjWo8v K7Ok/lhUXuI591g9BJKnEgpQ/Q8DCadDxKMeu/SZBsA50QLOvpsg9wh+nzgQ05AKtaqfFZlNX8GzR TyzWe86g+StlCtfXQ9iFmR+ARDoSTWvOvVSmFBxOtaEVcHpwS3kLnGK1cwD7vKR6YpucqkN/WKzqW +bKRgRZBVwy6UlGj7E09TdqCCyKvxDSC45GYZSkpcSag4heGqXegaaI9ZcWLtPGdrNoT1gGB3XlWb CKk86999X4qswDkZtsOZeFgpKcxqMD//6dWB13QOhghb7kDDlkBlpE1GwCemK11gn2assHHJFjdd0 2Y8dhC1A==; Received: by zero.zsh.org with local id 1pJxki-000O7d-EI; Mon, 23 Jan 2023 14:24:52 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lf1-f48.google.com) smtp.remote-ip=209.85.167.48; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lf1-f48.google.com ([209.85.167.48]:46075) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1pJxk1-000NQ3-TL; Mon, 23 Jan 2023 14:24:11 +0000 Received: by mail-lf1-f48.google.com with SMTP id x40so18400361lfu.12 for ; Mon, 23 Jan 2023 06:24:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TlHYs+EFt5gpa59W1B+UCBO+7+2Ba/CzLsmksDEEkqw=; b=hlqWClq3D2UstpDr4rRfZSRYGwc+QgqgKPz2fw+r1hVOxcyJXzSCF0t0LokAM65SJR sSojblXbx2melIGPsqFX2WAWp2o3zb9iUiSEmaiXl26S0ctrFAC/uT/xAJmspRdQ5Mcf SwBKpu4fo4fs29jECAYyFeBywUdV9QQPTpAY9rV6gms1qLYzWuR2pyukAh/3lXsFPlUN Gz3Hmpk0jki5sKcEH5Gd6V2NN6ZmPpi4SAugFvyiiHC7nFzyggmvxPVqe3F3BlFNv88T 4wrWVT8F2SleuYfDl+xLpDjbO/ro+AeSM7jTGDM7OD07hXFwi5PheoqDaN4W4GBi8euZ rzoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TlHYs+EFt5gpa59W1B+UCBO+7+2Ba/CzLsmksDEEkqw=; b=VgN9pMN4zxDhPhBGKzhQQ0Ooha9jKEylaBuLMbIPHJJsMLuj355/3Ip7sL/Mwy092a 1jjaze/PVjKNEt0sN+w5wSgqVayUzKlGGpCvkFKYcCbU3dfIb5TFUkK75el2gTSuIsML y3Kqwy5vp4dn5ZjghG36hJAIrzKKeGZraoAW5BMsM/B9ou21Wh8EEfYWKhJITQj1j2pe PndsDaegC6WPiT6Zlz85M3+2TFQ3+Vv998mMLOv3D//sRL5Jo4oViqZhjIDeh1eLWqHD WLHa6gRs9dKhf8U/ZO/rAYte7YstasVAL7oG8FCf3DlOLj8+aAJkEBspj1if3Ks5VRc2 alOg== X-Gm-Message-State: AFqh2kpPQMAL/laICc4oWcN8mw+gexvaSDsJMJ4qj0LAD3PE1T/cNY4o qbn3Za+ik6/aKpwEZ00hC+0l4tInKd6lAoGJgAY= X-Google-Smtp-Source: AMrXdXt8Mpon2GgYuB6gJTDq7J7RkAjf7BWhIo+USrCQ9FM3Y4Fjgj5J0SL2WkABnl1kXcOQ4zxFN+wWv9pM1chQacg= X-Received: by 2002:a05:6512:3c8f:b0:4b0:65b0:7f30 with SMTP id h15-20020a0565123c8f00b004b065b07f30mr1237091lfv.385.1674483848981; Mon, 23 Jan 2023 06:24:08 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Roman Perepelitsa Date: Mon, 23 Jan 2023 15:23:57 +0100 Message-ID: Subject: Re: Re: time command with shell builtins To: zeurkous@blaatscaahp.org Cc: dominik.vogt@gmx.de, Zsh Users Content-Type: text/plain; charset="UTF-8" X-Seq: 28743 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Mon, Jan 23, 2023 at 3:20 PM wrote: > > On Mon, 23 Jan 2023 14:42:05 +0100, Roman Perepelitsa wrote: > > On Mon, Jan 23, 2023 at 2:40 PM Dominik Vogt wrote: > >> > >> Is it possible to get timing statistics of shell builtins too? > >> Timing "echo" isn't very interesting, but timing loop constructs > >> would be: > >> > >> $ time while foo; do bar done > > > > This: > > > > % time ( while foo; do bar; done ) > > Doesn't that imply a fork, which will also be timed...? Yes, it does. > (Could lead to misleading results, in that case.) Any tool that measures how long a piece of code takes to run gives you an upper bound, so there is nothing new here. The standard solution is to ensure that the code under benchmark takes a non-trivial amount of time to execute. Here's the standard pattern I use: time ( repeat 1000 code-under-benchmark ) I tune the loop constant so that the benchmark takes around a second. Roman.