Skip to content

crates/sel4-sys: parse_xml on contents, not file#328

Open
Ivan-Velickovic wants to merge 1 commit intoseL4:mainfrom
au-ts:xml_parse_contents
Open

crates/sel4-sys: parse_xml on contents, not file#328
Ivan-Velickovic wants to merge 1 commit intoseL4:mainfrom
au-ts:xml_parse_contents

Conversation

@Ivan-Velickovic
Copy link
Copy Markdown
Contributor

Turns out the XML parser, given a file handle, will read the XML byte-by-byte. When building with Cargo timings, we saw that about 0.5s is attributed to the build step of sel4-sys. When running the build script with strace we saw there was a read system call for each byte of the XML file. With this small change the build script now takes about 0.2s.

Turns out the XML parser, given a file handle, will read the XML
byte-by-byte. When building with Cargo timings, we saw that about
0.5s is attributed to the build step of sel4-sys. When running
the build script with strace we saw there was a read system call
for each byte of the XML file. With this small change the build
script now takes about 0.2s.

Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
@Ivan-Velickovic Ivan-Velickovic requested a review from nspin as a code owner March 25, 2026 02:57
Comment on lines +20 to +21
let contents = fs::read_to_string(path).unwrap();
Element::parse(contents.as_bytes()).unwrap()
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you're not using the UTF-8, the following would suffice:

let contents = fs::read(path).unwrap();
Element::parse(&contents).unwrap()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants