summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Daloze <[email protected]>2024-07-24 21:32:29 +0200
committergit <[email protected]>2024-07-25 11:39:04 +0000
commit9cc2747ebbbe33315751873f8dc24b7c32c26ad0 (patch)
tree5ce94b15242c050d402ca3754370998dc194d198
parent22ad6b249be44e5230b27578625bcca0c2010fc1 (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.erb2
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)) {