From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2118 invoked by alias); 23 Mar 2017 03:59:51 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40884 Received: (qmail 2188 invoked from network); 23 Mar 2017 03:59:50 -0000 X-Qmail-Scanner-Diagnostics: from park01.gkg.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(205.235.26.22):SA:0(0.5/5.0):. Processed in 1.834765 secs); 23 Mar 2017 03:59:50 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.5 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_SORBS_SPAM,RP_MATCHES_RCVD,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: SRS0=2aMS=3A=brasslantern.com=schaefer@bounces.park01.gkg.net X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at bounces.park01.gkg.net does not designate permitted sender hosts) X-Virus-Scanned: by amavisd-new at gkg.net Authentication-Results: amavisd4.gkg.net (amavisd-new); dkim=pass (2048-bit key) header.d=brasslantern-com.20150623.gappssmtp.com X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version; bh=co6BpArrvOeib/zbxrTp4EiW/NdxtcAlwPSVeM0YFPg=; b=fokasxVtndOKwV6mxsMIudqzn4RXj68cous+svUPCdwSCvHK2Ccjq5nYzGxMJa0S81 fIDlx8nm4nJzx7cmCJH/5bU6BMh+xCwIz+2BjRhB4Ak20MUOSnrs2XOBPJRTNpCPDb9O nA9xfIAzjZSdxTa1z+/U0sCWt/dYr5GY0FiJrUtDai/Y4NMi3YITYN9hCW710w6wq+Df vMHgx4jBj4zBy2HQWMTs69M/7CTZRUBYzcja6geacgpM2Ep+GzhQhA0PmtNQjLfzCWFD pvkH+jXrciS0V3UItRZvQBiMIzhFbumY7f+rGiBwblTiQyNmGrWUY2R5c2SvZZPIiNh9 J9XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version; bh=co6BpArrvOeib/zbxrTp4EiW/NdxtcAlwPSVeM0YFPg=; b=jbJKoemy8zD4kcO/j8/SmY/0X/M2TqjSh5aCbkfckKKrDb8bTkOt5oyUwCq0S/0mHB FCQQiYQ6D1pfP+o7zr3TYqD4s8RQxnlD+rG9STB8ynj+cU+BRsss6D6TV3dd90KBpvQ+ H6r2y+k4D1VD1k9k51UzQRL/1HNZ+B9SF6z2KdPMP6V6AHouHUV/22S8UkOhYHva+iw8 qfMXW/Lm7Y3deIMvOgDXFhynXd+bQdDIk+gTcTXApJglLMMUguB+SEcYYTBqR9swo2Cz bLLzZ3IHoIXz18DtFWhi+lmZzB4/D3kkWy1hasLzfayDzkpC2CVQm1KTFx/nD2hArre7 NcSQ== X-Gm-Message-State: AFeK/H0f+cA28Vmu2ijSvFoPn225gA69xDOLM/66N9Dj9ex21B2N4Jk6xr/RgqCht3t7Eg== X-Received: by 10.31.26.86 with SMTP id a83mr138584vka.3.1490241127420; Wed, 22 Mar 2017 20:52:07 -0700 (PDT) From: Bart Schaefer Message-Id: <170322205304.ZM5853@torch.brasslantern.com> Date: Wed, 22 Mar 2017 20:53:04 -0700 In-Reply-To: <1490076282.321781.918060736.22D2C432@webmail.messagingengine.com> Comments: In reply to Sebastian Gniazdowski "An idea for fast "last-N-lines" read" (Mar 20, 11:04pm) References: <1490076282.321781.918060736.22D2C432@webmail.messagingengine.com> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: Sebastian Gniazdowski , zsh-workers@zsh.org Subject: Re: An idea for fast "last-N-lines" read MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Mar 20, 11:04pm, Sebastian Gniazdowski wrote: } } I read somewhere that to read "last-N-lines" it is good to memory-map } the file. Cannot check with Zsh [...] } - apparently because it memory-maps the file on each newline check. Indeed, the mapfile module doesn't help much after the initial file read because zsh has no mechanism for holding a reference to the mapped block of memory. It's mostly for quickly copying the entire file into and out of regular heap. This could, however, be made a lot better, e.g. by introducing a cache of mapped files into mapfile.c and causing get_contents() to first use the cache (and setpmmapfile to update it, unsetpmmapfile to erase an entry from it) before resorting to remapping the actual file. } I'm thinking about: $(<10