diff options
author | Benoit Daloze <[email protected]> | 2024-07-24 21:32:29 +0200 |
---|---|---|
committer | git <[email protected]> | 2024-07-25 11:39:04 +0000 |
commit | 9cc2747ebbbe33315751873f8dc24b7c32c26ad0 (patch) | |
tree | 5ce94b15242c050d402ca3754370998dc194d198 | |
parent | 22ad6b249be44e5230b27578625bcca0c2010fc1 (diff) |
[ruby/prism] Do not serialize node_id when PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS is set
* $ bundle exec rake serialized_size:topgems
Before:
Total sizes for top 100 gems:
total source size: 90207647
total serialized size: 86284647
total serialized/total source: 0.957
Stats of ratio serialized/source per file:
average: 0.952
median: 0.937
1st quartile: 0.669
3rd quartile: 1.206
min - max: 0.080 - 4.065
After:
Total sizes for top 100 gems:
total source size: 90207647
total serialized size: 69477115
total serialized/total source: 0.770
Stats of ratio serialized/source per file:
average: 0.844
median: 0.825
1st quartile: 0.597
3rd quartile: 1.064
min - max: 0.078 - 3.792
https://github.com/ruby/prism/commit/cf90fe5759
-rw-r--r-- | prism/templates/src/serialize.c.erb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/prism/templates/src/serialize.c.erb b/prism/templates/src/serialize.c.erb index f62453e699..faf7962b74 100644 --- a/prism/templates/src/serialize.c.erb +++ b/prism/templates/src/serialize.c.erb @@ -74,7 +74,9 @@ pm_serialize_node(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) { size_t offset = buffer->length; + <%- unless Prism::Template::SERIALIZE_ONLY_SEMANTICS_FIELDS -%> pm_buffer_append_varuint(buffer, node->node_id); + <%- end -%> pm_serialize_location(parser, &node->location, buffer); switch (PM_NODE_TYPE(node)) { |