From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id E61AF2166F for ; Sun, 14 Jan 2024 11:58:06 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1705229886; b=GGtUqzdggB24HHNG7Wxu0fYFZ3g+XfNeOud0tXHOPCH98GqBhLyLRAn4d2bVXB3rkgBY7+Hqm9 SIUG5QMhtFVg18nDApeljGLkoVYWugUoLiZghphe3s0AgEQo0NfvHPubxSbZ5zdhEse69pyZcC eymNfQDj21hRRiX1/709O5KWF2C03DZYaDgCBUs4Affb3gBUVEoOLJr3WIP17hB3Yoqx6I8lA7 8zK9PAOUvAIevDDGVywbuS3EEnXODK/pSYOOdiQtZKwG1ad7o7GY/b1kL6Wgd49GrJ5OtjYAOS M9L2c9+rmoDLwGiwIEISvnLJBG9EymTT3e0zkvg1AWXOMg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f180.google.com) smtp.remote-ip=209.85.208.180; dkim=pass header.d=gmail.com header.s=20230601 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=1705229886; bh=ZFF/J8RJ4YZpJVeBQCr6GSDFByGr5OpnCAVCG1WvzWY=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=Cu3g5ldRQXz2A/efSJeH3Ktx1bt8oyymFI0OZ2TsPHVwEJa5C070i5a4Ajk9mXOFs2S969I4sZ qUpHZ5IYSN/45oaLlImbEpRYFzXeDYJNST+ux1gdscTQVrNpe6lnKvawmnIpHfbuZcKOf1VVDp wjCMCyQVLpXi76POwrGokLRByyBAl10g0/YOqRLMc8R0yu8M/HEmMgWqZAnxczMDqF1uEt0H2y CF4GTWSwy1n2Mcg55+OkcQmaPOfUzrNjrTpK3SmQX4PrrKn4D+5i2EsTjlK9V705gGoTWowhOX EUwU5Cp/XjO38WGCSdJI2gEIP77g9Zr4NiBnAb7UAUKM1g==; 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-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=pyUd56h9xZ3RNpVN79Ktb3A29lw9jk92KkJYDzZ0F84=; b=Rdh2fTW9k3dx0CEnIVyKywOI6h cIsH3EeerYrXlJPWNChalmJL/RFQb/IIObA6iJDWVvPWI93PeHTKgAOlc9wg4sI2+Yuo9fhgaMTPI 4w7+YKfzJJ1Aj0mus/MDtuv5snbid0x4ikR39ucrDTIe0KcEo/fGWQ5V4r4Hw8iBoSsZZ6EUhQWVn Y+tPTiQ28o14Im0YkIh152LqpQ8NWbIXLERTFBy4e76lakjI++56FE7ckXlj4OFBf/gZG104Zd4/S e/+psD6lUB9Jp+p1KaNcWP7KBAV3isz5JDmtzm5aXV5VnPn4AIZP1dnepjgx713KuWG1HVUZqBKKH eeME/S8Q==; Received: by zero.zsh.org with local id 1rOyBq-000OKO-A4; Sun, 14 Jan 2024 10:58:06 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f180.google.com) smtp.remote-ip=209.85.208.180; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lj1-f180.google.com ([209.85.208.180]:48394) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rOyB1-000NfI-4g; Sun, 14 Jan 2024 10:57:17 +0000 Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2cdc1af60b2so912731fa.1 for ; Sun, 14 Jan 2024 02:57:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705229834; x=1705834634; darn=zsh.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=pyUd56h9xZ3RNpVN79Ktb3A29lw9jk92KkJYDzZ0F84=; b=Zn4v8d4wtaXy3QUNc9cdp1jj/a8IbyjyaMpD2RAxoPgtWKikxAjx8WgjW5UGvBNGUh DSvaCXMJ7U7xDP1nSoSsx1m3Jqf6/obcrc/D27lqV7WFTxmlZLQdwViAa6mn5j5tLc0M apChE0p03P1cuVnY0n9MoPKcIk7oTv2oTZqUljsxOK5hWKeLEg85MIHfJ7UN9bay0XFC 4a/Gdafev2YqH0T6v6Q3MIeqbdh+L8fy7cOXj+cBd/LxGuUxLZ8tIK0dujc/YlseIukv EF/++Wh+x5+w1H31wY5VTcfe+Hus0Pyo5uiw7Sv4vSx7eFNQCe4NjfJYYMbiVG9jlJ4U qj5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705229834; x=1705834634; h=content-transfer-encoding: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=pyUd56h9xZ3RNpVN79Ktb3A29lw9jk92KkJYDzZ0F84=; b=mMDsC3PybcmFonpuRvUqMTxOfwJspU4xEPWc+f0/u8ELdYqt15sa3/qg2NbccS3eEp iif44ZshcUs2h6PTeY6iZ2/174LNICsle/k4GbEAyJ10s5iQdpLB531/gMiNzaKS6XWV JG4eJBucd+WR8w8s7l4a7ItVQihyWWhOuFxEibtB3tuXX5LLpO2GMxEx569VSwH8mhGw xUBjOM/LGZnY++Lkfn5pkjeQBIeLHSEdnCtwIDLAkA0ZsZwd/t30YWKUI0O/nHEVyAQX mckUw+Jj0FdGQ/ItFn2Rmz64tXOeCXIpZ7wF17go7Whxl8vebWTh836n6uwmyH/mZ4zp dSmA== X-Gm-Message-State: AOJu0Yyxzt0lZqlHn/j7fGbtdABjEoQtllgyGi6BtGoOFejiQgWtWK5A V5hS/VqVA31b+NnbgKNKv80eir4IEuLaX9aKR4BiIGtG X-Google-Smtp-Source: AGHT+IF4ToclnrSXx0+rs0OHcv/nuT/HAmxXY9ivENQooDIpjcNM3nUZLD6KftKh/Q5TASYxsvw7dIpZII2nYgUPXAk= X-Received: by 2002:a2e:8346:0:b0:2cc:e9de:3905 with SMTP id l6-20020a2e8346000000b002cce9de3905mr1508143ljh.68.1705229834398; Sun, 14 Jan 2024 02:57:14 -0800 (PST) MIME-Version: 1.0 References: <205735b2-11e1-4b5e-baa2-7418753f591f@eastlink.ca> In-Reply-To: From: Roman Perepelitsa Date: Sun, 14 Jan 2024 11:57:02 +0100 Message-ID: Subject: Re: Slurping a file (was: more spllitting travails) To: Bart Schaefer Cc: Zsh Users Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 29473 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 Sun, Jan 14, 2024 at 11:34=E2=80=AFAM Roman Perepelitsa wrote: > > I've benchmarked read and slurp for reading files and pipes. > > [...] > > Observations from the data: > > - All routines appear to have linear time complexity. > - For small files, read is up to twice as fast as slurp. > - For files over 256 bytes in size, slurp is faster. > - With slurp, the time it takes to read from a pipe is about 2x > compared to reading from a file. With read, the penalty is 8x. > - For an 8MB file, slurp is 20 times faster than read when reading > from a file, and 70 times faster when reading from a pipe. I've also benchmarked mapfile. As expected, it is the fastest method of reading a file. For small files, slurp is up to 5 times slower, but for larger files the difference is rather small: for a 64kB file slurp is only 25% slower. Roman.