benchmark sources

pull/8757/head
Jacob Sandlund 2025-09-11 10:30:01 -04:00
parent 8a40c1f59f
commit 4d37853f6c
5 changed files with 27 additions and 5 deletions

7
bench.sh Executable file
View File

@ -0,0 +1,7 @@
bench=$1
warmup=$2
runs=$3
data=$4
echo hyperfine --warmup $warmup --runs=$runs "zig-out/bin/ghostty-bench +$bench --data=$data --mode=uucode" "zig-out/bin/ghostty-bench-old +$bench --data=$data --mode=uucode"
hyperfine --warmup $warmup --runs=$runs "zig-out/bin/ghostty-bench +$bench --data=$data --mode=uucode" "zig-out/bin/ghostty-bench-old +$bench --data=$data --mode=uucode"

14
benchmark-sources.txt Normal file
View File

@ -0,0 +1,14 @@
# https://chatgpt.com/share/68c2da5f-65c8-800f-b3e4-55cdff7150cb
zig-out/bin/ghostty-gen +utf8 | head -c 200000000 > data.txt
curl -O https://www.gutenberg.org/cache/epub/30/pg30.txt
curl -O https://www.gutenberg.org/cache/epub/24264/pg24264.txt # 紅樓夢 by Xueqin Cao
# From https://linguatools.org/tools/corpora/wikipedia-monolingual-corpora/
curl -L "https://www.dropbox.com/scl/fi/86gjpfzopssavk2nzo69u/arwiki-20180920-corpus.xml.bz2?dl=1&e=1&file_subpath=%2Fdata&rlkey=dmjlaw1xegg8vsje4xrn040v8" | bzcat | head -c 1000000000 > arwiki-20180920-corpus.xml # arabic
curl -L "https://www.dropbox.com/scl/fi/la1nvupgk2honb3n6m9zc/enwiki-20181001-corpus.xml.bz2?rlkey=8vg4vokbaijh1lg5lw3ytc864&e=1&dl=1" | bzcat | head -c 1000000000 > enwiki-20181001-corpus.xml # english
curl -L "https://www.dropbox.com/scl/fi/vru4zxv5qff1klod9xiht/jawiki-20181001-corpus.xml.bz2?rlkey=utuuooiwyupws3x5517u8n8jl&e=1&dl=1" | bzcat | head -c 1000000000 > jawiki-20181001-corpus.xml # japanese

View File

@ -37,8 +37,8 @@
.lazy = true,
},
.uucode = .{
.url = "https://github.com/jacobsandlund/uucode/archive/507da5bf0a03c940f2688f717fd2357c5b2e9386.tar.gz",
.hash = "uucode-0.0.0-ZZjBPhbMPwBdJL3hgJifuJf2CiOWfBp08pxULHNohqZE",
.url = "https://github.com/jacobsandlund/uucode/archive/a1833012b50197bdf7d43543e38f8be5c5a75016.tar.gz",
.hash = "uucode-0.0.0-ZZjBPu_RPwA01mgYvIKApZJX_JMUTKD2kyBsyYCdzfaz",
},
.zig_wayland = .{
// codeberg ifreund/zig-wayland

View File

@ -130,6 +130,7 @@ pub const tables = [_]config.Table{
},
},
.{
.stages = .two,
.extensions = &.{ wcwidth, width, grapheme_boundary_class },
.fields = &.{
width.field("width"),
@ -137,6 +138,7 @@ pub const tables = [_]config.Table{
},
},
.{
.stages = .two,
.extensions = &.{is_symbol},
.fields = &.{
is_symbol.field("is_symbol"),

View File

@ -6,11 +6,10 @@ const lut = @import("lut.zig");
/// The lookup tables for Ghostty.
pub const table = table: {
const Props = uucode.PackedTypeOf("1");
// This is only available after running main() below as part of the Ghostty
// build.zig, but due to Zig's lazy analysis we can still reference it here.
const generated = @import("unicode_tables").Tables(Props);
const Tables = lut.Tables(Props);
const generated = @import("unicode_tables").Tables(Properties);
const Tables = lut.Tables(Properties);
break :table Tables{
.stage1 = &generated.stage1,
.stage2 = &generated.stage2,