From: Bob Rogers <rogers-emacs@rgrjr.homedns.org>
To: Lars Ingebrigtsen <larsi@gnus.org>,
Andreas Schwab <schwab@linux-m68k.org>,
52209@debbugs.gnu.org, Paul Eggert <eggert@cs.ucla.edu>
Subject: bug#52209: 28.0.60; [PATCH] date-to-time fails on pure dates
Date: Wed, 23 Feb 2022 18:15:34 -0500 [thread overview]
Message-ID: <25110.49174.412406.711346@orion.rgrjr.com> (raw)
In-Reply-To: <25106.48460.775490.619228@orion.rgrjr.com>
[-- Attachment #1: message body text --]
[-- Type: text/plain, Size: 1218 bytes --]
From: Bob Rogers <rogers-emacs@rgrjr.homedns.org>
Date: Sun, 20 Feb 2022 17:14:36 -0500
From: Lars Ingebrigtsen <larsi@gnus.org>
Date: Sun, 20 Feb 2022 13:21:54 +0100
Bob Rogers <rogers-emacs@rgrjr.homedns.org> writes:
> Here's what I have for this phase of the plan; let me know what you
> think. It took longer than expected because it became a project unto
> itself, and so my procrastinator kicked in, making it longer still. :-/
:-)
Have you benchmarked your new implementation versus the current one?
It's important that the parsing is performant, otherwise it'd slow down
many things that parse a large number of date strings.
No benchmarking; I will do that presently.
Benchmarking code and results attached. I extracted a handful of
non-error cases from the tests as being more representative than any of
the error cases; the resulting numbers make it seem like any difference
between the two implementations is in the noise.
But this is my first foray into elisp benchmarking, so I may have
overlooked something. Fortunately, email dates are not that diverse, so
I am hoping this sampling may be broad enough.
-- Bob
[-- Attachment #2: ietf-drums-date-timings.el --]
[-- Type: text/x-emacs-lisp, Size: 1938 bytes --]
;;; ietf-drums-date-timings.el --- timing ietf-drums-date.el -*- lexical-binding: t -*-
;; Copyright (C) 2022 Free Software Foundation, Inc.
;; Author: Bob Rogers <rogers@rgrjr.com>
(defun run-timings (parse-fn)
(dolist (case '(("Mon, 22 Feb 2016 19:35:42 +0100"
(42 35 19 22 2 2016 1 -1 3600)
(22219 21758))
("22 Feb 2016 19:35:42 +0100"
(42 35 19 22 2 2016 nil -1 3600)
(22219 21758))
("Mon, 22 February 2016 19:35:42 +0100"
(42 35 19 22 2 2016 1 -1 3600)
(22219 21758))
("Mon, 22 feb 2016 19:35:42 +0100"
(42 35 19 22 2 2016 1 -1 3600)
(22219 21758))
("Monday, 22 february 2016 19:35:42 +0100"
(42 35 19 22 2 2016 1 -1 3600)
(22219 21758))
("Monday, 22 february 2016 19:35:42 PST"
(42 35 19 22 2 2016 1 nil -28800)
(22219 54158))
("Friday, 21 Sep 2018 13:47:58 PDT"
(58 47 13 21 9 2018 5 t -25200)
(23461 22782))
("Friday, 21 Sep 2018 13:47:58"
(58 47 13 21 9 2018 5 -1 nil)
(23461 11982))))
(funcall parse-fn (car case))))
(benchmark-run-compiled 10000 (run-timings #'ietf-drums-parse-date))
;; (7.220905228 83 3.3420971879999968)
;; (7.24936647 83 3.3321491059999993)
;; (7.3240701370000005 84 3.371737411)
;; (/ (+ 7.249 7.324 7.324) 3) 7.299
(defun ietf-drums-old-parse-date (string)
"Return an Emacs time spec from STRING."
(encode-time (parse-time-string string)))
(benchmark-run 10000 (run-timings #'ietf-drums-old-parse-date))
;; (7.249068317 83 3.3251401939999994)
;; (7.317397244 84 3.3750772899999983)
;; (7.268244294 84 3.3820036280000005)
;; (/ (+ 7.249 7.317 7.268) 3) 7.278
next prev parent reply other threads:[~2022-02-23 23:15 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-30 20:55 bug#52209: 28.0.60; [PATCH] date-to-time fails on pure dates Bob Rogers
2021-12-01 4:17 ` Lars Ingebrigtsen
2021-12-03 5:19 ` Katsumi Yamaoka
2021-12-03 16:29 ` Lars Ingebrigtsen
2021-12-03 18:38 ` Michael Heerdegen
2021-12-04 18:58 ` Paul Eggert
2021-12-19 21:11 ` Bob Rogers
2021-12-20 10:08 ` Lars Ingebrigtsen
2021-12-20 15:57 ` Bob Rogers
2021-12-20 16:34 ` Bob Rogers
2021-12-21 11:01 ` Lars Ingebrigtsen
2021-12-23 19:48 ` Bob Rogers
2021-12-24 9:29 ` Lars Ingebrigtsen
2021-12-24 15:58 ` Bob Rogers
2021-12-25 11:58 ` Lars Ingebrigtsen
2021-12-25 22:50 ` Bob Rogers
2021-12-26 11:31 ` Lars Ingebrigtsen
2021-12-28 15:52 ` Bob Rogers
2021-12-29 15:19 ` Lars Ingebrigtsen
2021-12-29 19:29 ` Paul Eggert
2021-12-29 22:01 ` Bob Rogers
2021-12-30 5:32 ` Bob Rogers
2021-12-30 21:08 ` Bob Rogers
2022-01-01 14:47 ` Lars Ingebrigtsen
2022-01-01 14:56 ` Andreas Schwab
2022-01-02 0:41 ` Bob Rogers
2022-01-03 11:34 ` Lars Ingebrigtsen
2022-01-04 4:45 ` Bob Rogers
2022-01-05 15:46 ` Lars Ingebrigtsen
2022-01-05 22:49 ` Bob Rogers
[not found] ` <25105.33397.961104.269676@orion.rgrjr.com>
2022-02-20 12:25 ` Lars Ingebrigtsen
2022-02-20 13:03 ` Andreas Schwab
[not found] ` <87ilt9vicd.fsf@gnus.org>
2022-02-20 22:14 ` Bob Rogers
2022-02-23 23:15 ` Bob Rogers [this message]
2022-02-24 9:19 ` Lars Ingebrigtsen
2022-02-25 0:49 ` Bob Rogers
2022-02-25 2:16 ` Lars Ingebrigtsen
2022-02-25 2:32 ` Bob Rogers
2022-02-25 2:58 ` Bob Rogers
2022-02-25 12:03 ` Lars Ingebrigtsen
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=25110.49174.412406.711346@orion.rgrjr.com \
--to=rogers-emacs@rgrjr.homedns.org \
--cc=52209@debbugs.gnu.org \
--cc=eggert@cs.ucla.edu \
--cc=larsi@gnus.org \
--cc=schwab@linux-m68k.org \
/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.