From d90c553c2b46293ff1e3e82b6fcc09cb3a81b515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Sun, 8 Sep 2024 17:56:47 +0000 Subject: [PATCH 1/7] Fix massive Markdown first use latency regression --- stdlib/Markdown/src/Markdown.jl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index b9ff56297fe51..72fa20ae0b1eb 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -122,4 +122,26 @@ import Base.Docs: catdoc catdoc(md::MD...) = MD(md...) + +precompile(Tuple{typeof(Markdown.mdexpr), String}) +precompile(Tuple{typeof(Markdown.hashheader), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.list), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.fencedcode), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.blockquote), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.admonition), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.blocktex), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.blockinterp), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.indentcode), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.footnote), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) + +#= 145.1 ms =# precompile(Tuple{typeof(Markdown.github_table), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) + +precompile(Tuple{typeof(Markdown.horizontalrule), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.setextheader), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) +precompile(Tuple{typeof(Markdown.paragraph), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) + +precompile(Tuple{typeof(Markdown.toexpr), Markdown.Paragraph}) +precompile(Tuple{typeof(Markdown.toexpr), Array{Any, 1}}) +precompile(Tuple{typeof(Markdown.toexpr), String}) + end From 2289b3897997459c49f38d47fff8d078723e96c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Sun, 8 Sep 2024 19:29:29 +0000 Subject: [PATCH 2/7] workload, triggering precompile --- stdlib/Markdown/src/Markdown.jl | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index 72fa20ae0b1eb..4119dc2ef15b8 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -122,26 +122,8 @@ import Base.Docs: catdoc catdoc(md::MD...) = MD(md...) - -precompile(Tuple{typeof(Markdown.mdexpr), String}) -precompile(Tuple{typeof(Markdown.hashheader), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.list), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.fencedcode), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.blockquote), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.admonition), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.blocktex), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.blockinterp), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.indentcode), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.footnote), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) - -#= 145.1 ms =# precompile(Tuple{typeof(Markdown.github_table), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) - -precompile(Tuple{typeof(Markdown.horizontalrule), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.setextheader), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.paragraph), Base.GenericIOBuffer{Memory{UInt8}}, Markdown.MD}) - -precompile(Tuple{typeof(Markdown.toexpr), Markdown.Paragraph}) -precompile(Tuple{typeof(Markdown.toexpr), Array{Any, 1}}) -precompile(Tuple{typeof(Markdown.toexpr), String}) +if Base.generating_output() + dummy = md"" # workload to trigger precompile +end end From f36465323067622642dfc343cbfebc65703703ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Sun, 8 Sep 2024 20:49:55 +0000 Subject: [PATCH 3/7] Fix/Update Markdown.jl --- stdlib/Markdown/src/Markdown.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index 4119dc2ef15b8..3f1ed39c8e91e 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -123,7 +123,7 @@ import Base.Docs: catdoc catdoc(md::MD...) = MD(md...) if Base.generating_output() - dummy = md"" # workload to trigger precompile + md"" # workload to trigger precompile end end From 589b0a16f0e519d46eeddcf3a621ecd5c7de7c1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Mon, 9 Sep 2024 08:10:23 +0000 Subject: [PATCH 4/7] representive workload --- stdlib/Markdown/src/Markdown.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index 3f1ed39c8e91e..7f9c3da93c66c 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -123,7 +123,8 @@ import Base.Docs: catdoc catdoc(md::MD...) = MD(md...) if Base.generating_output() - md"" # workload to trigger precompile + # (representive) workload to trigger precompile; from Pkg.REPLMode.gen_help() + md"**Welcome to the Pkg REPL-mode** .." end end From be27765af9a51e56ccc52ddf41b05d03c20f55f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Mon, 9 Sep 2024 08:12:03 +0000 Subject: [PATCH 5/7] typofix --- stdlib/Markdown/src/Markdown.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index 7f9c3da93c66c..21d0865720c53 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -123,7 +123,7 @@ import Base.Docs: catdoc catdoc(md::MD...) = MD(md...) if Base.generating_output() - # (representive) workload to trigger precompile; from Pkg.REPLMode.gen_help() + # (representative) workload to trigger precompile; from Pkg.REPLMode.gen_help() md"**Welcome to the Pkg REPL-mode** .." end From 49cd9614ae462b8b2d140aea29fe9bfe8381b980 Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Mon, 9 Sep 2024 13:18:50 +0200 Subject: [PATCH 6/7] remove reference to Pkg --- stdlib/Markdown/src/Markdown.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index 21d0865720c53..20d2ddf451e9a 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -123,8 +123,8 @@ import Base.Docs: catdoc catdoc(md::MD...) = MD(md...) if Base.generating_output() - # (representative) workload to trigger precompile; from Pkg.REPLMode.gen_help() - md"**Welcome to the Pkg REPL-mode** .." + # workload to reduce latency + md"**Here is some markdown**..." end end From 941b6818e0b481ac4421fe7787e46aa74d251982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Mon, 9 Sep 2024 14:53:13 +0000 Subject: [PATCH 7/7] Complex workload to trigger most code paths --- stdlib/Markdown/src/Markdown.jl | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/stdlib/Markdown/src/Markdown.jl b/stdlib/Markdown/src/Markdown.jl index 20d2ddf451e9a..1832e3a6a6956 100644 --- a/stdlib/Markdown/src/Markdown.jl +++ b/stdlib/Markdown/src/Markdown.jl @@ -124,7 +124,23 @@ catdoc(md::MD...) = MD(md...) if Base.generating_output() # workload to reduce latency - md"**Here is some markdown**..." + md""" + # H1 + ## H2 + ### H3 + **bold text** + *italicized text* + > blockquote + 1. First item + 2. Second item + 3. Third item + - First item + - Second item + - Third item + `code` + Horizontal Rule + --- + """ end end