return super
end
- redef fun last_byte=(v) do
- sys.last_byte_call += 1
- super
- end
-
init do
sys.flatstr_allocations += 1
end
- redef init with_infos(items, bytelen, from, to)
+ redef init with_infos(items, bytelen, from)
do
self.items = items
self.bytelen = bytelen
sys.str_bytelen.inc bytelen
first_byte = from
- last_byte = to
+ length = items.utf8_length(from, bytelen)
end
- redef init full(items, bytelen, from, to, length)
+ redef init full(items, bytelen, from, length)
do
self.items = items
self.length = length
sys.str_bytelen.inc bytelen
sys.str_full_created += 1
first_byte = from
- last_byte = to
end
private var length_cache: nullable Int = null
Allocations, by type:
- -FlatString = 32
+ -FlatString = 29
-FlatBuffer = 2
-Concat = 0
-RopeBuffer = 0
Calls to length, by type:
- FlatString = 36 (cache misses 8, 22.22%)
- FlatBuffer = 4
+ FlatString = 23 (cache misses 5, 21.73%)
Indexed accesses, by type:
- FlatString = 17
+ FlatString = 13
Calls to bytelen for each type:
- FlatString = 70
+ FlatString = 61
Calls to position for each type:
- FlatString = 35
+ FlatString = 27
Calls to bytepos for each type:
- FlatString = 18
-Calls to first_byte on FlatString 227
-Calls to last_byte on FlatString 103
-FlatStrings allocated with length 82 (86.458%)
+ FlatString = 14
+Calls to first_byte on FlatString 216
+Calls to last_byte on FlatString 19
+FlatStrings allocated with length 78 (86.813%)
Length of travel for index distribution:
-* null = 20 => occurences 83.333%, cumulative 83.333%
-* 1 = 8 => occurences 21.053%, cumulative 73.684%
+* null = 16 => occurences 80.0%, cumulative 80.0%
+* 1 = 14 => occurences 35.0%, cumulative 75.0%
Byte length of the FlatStrings created:
-* null = 6 => occurences 4.286%, cumulative 4.286%
-* 1 = 25 => occurences 16.234%, cumulative 20.13%
-* 2 = 31 => occurences 18.452%, cumulative 36.905%
-* 3 = 30 => occurences 16.393%, cumulative 50.273%
-* 4 = 4 => occurences 2.02%, cumulative 48.485%
-* 5 = 19 => occurences 8.92%, cumulative 53.991%
-* 6 = 26 => occurences 11.404%, cumulative 61.842%
-* 9 = 1 => occurences 0.412%, cumulative 58.436%
-* 10 = 10 => occurences 3.876%, cumulative 58.915%
-* 11 = 2 => occurences 0.733%, cumulative 56.41%
-* 12 = 1 => occurences 0.348%, cumulative 54.007%
-* 13 = 1 => occurences 0.333%, cumulative 52.0%
-* 14 = 1 => occurences 0.319%, cumulative 50.16%
-* 15 = 6 => occurences 1.84%, cumulative 50.0%
-* 16 = 7 => occurences 2.053%, cumulative 49.853%
-* 17 = 1 => occurences 0.281%, cumulative 48.034%
-* 25 = 2 => occurences 0.542%, cumulative 46.883%
-* 26 = 1 => occurences 0.261%, cumulative 45.431%
-* 31 = 2 => occurences 0.505%, cumulative 44.444%
-* 32 = 1 => occurences 0.244%, cumulative 43.171%
-* 33 = 1 => occurences 0.236%, cumulative 42.08%
-* 34 = 2 => occurences 0.459%, cumulative 41.284%
-* 36 = 1 => occurences 0.222%, cumulative 40.222%
-* 37 = 1 => occurences 0.216%, cumulative 39.309%
-* 39 = 1 => occurences 0.21%, cumulative 38.445%
-* 40 = 1 => occurences 0.204%, cumulative 37.628%
-* 43 = 1 => occurences 0.199%, cumulative 36.853%
-* 46 = 1 => occurences 0.194%, cumulative 36.117%
-* 51 = 15 => occurences 2.841%, cumulative 38.068%
-* 55 = 1 => occurences 0.184%, cumulative 37.201%
+* null = 6 => occurences 4.444%, cumulative 4.444%
+* 1 = 21 => occurences 14.094%, cumulative 18.121%
+* 2 = 33 => occurences 20.245%, cumulative 36.81%
+* 3 = 29 => occurences 16.292%, cumulative 50.0%
+* 4 = 9 => occurences 4.663%, cumulative 50.777%
+* 5 = 20 => occurences 9.615%, cumulative 56.731%
+* 6 = 21 => occurences 9.417%, cumulative 62.332%
+* 9 = 1 => occurences 0.42%, cumulative 58.824%
+* 10 = 9 => occurences 3.557%, cumulative 58.893%
+* 11 = 2 => occurences 0.746%, cumulative 56.343%
+* 12 = 1 => occurences 0.355%, cumulative 53.901%
+* 13 = 1 => occurences 0.339%, cumulative 51.864%
+* 14 = 1 => occurences 0.325%, cumulative 50.0%
+* 15 = 5 => occurences 1.558%, cumulative 49.533%
+* 16 = 7 => occurences 2.083%, cumulative 49.405%
+* 17 = 1 => occurences 0.285%, cumulative 47.578%
+* 25 = 2 => occurences 0.549%, cumulative 46.429%
+* 26 = 1 => occurences 0.265%, cumulative 44.974%
+* 31 = 2 => occurences 0.512%, cumulative 43.99%
+* 32 = 1 => occurences 0.247%, cumulative 42.716%
+* 33 = 1 => occurences 0.239%, cumulative 41.627%
+* 34 = 2 => occurences 0.464%, cumulative 40.835%
+* 35 = 1 => occurences 0.225%, cumulative 39.775%
+* 37 = 1 => occurences 0.218%, cumulative 38.865%
+* 39 = 1 => occurences 0.212%, cumulative 38.004%
+* 40 = 1 => occurences 0.207%, cumulative 37.19%
+* 43 = 1 => occurences 0.201%, cumulative 36.419%
+* 46 = 1 => occurences 0.196%, cumulative 35.686%
+* 48 = 1 => occurences 0.191%, cumulative 34.99%
+* 51 = 21 => occurences 3.918%, cumulative 38.06%
Allocations, by type:
- -FlatString = 32
+ -FlatString = 29
-FlatBuffer = 2
-Concat = 0
-RopeBuffer = 0
Calls to length, by type:
- FlatString = 36 (cache misses 8, 22.22%)
- FlatBuffer = 4
+ FlatString = 23 (cache misses 5, 21.73%)
Indexed accesses, by type:
- FlatString = 17
+ FlatString = 13
Calls to bytelen for each type:
- FlatString = 70
+ FlatString = 61
Calls to position for each type:
- FlatString = 35
+ FlatString = 27
Calls to bytepos for each type:
- FlatString = 18
-Calls to first_byte on FlatString 227
-Calls to last_byte on FlatString 103
-FlatStrings allocated with length 82 (86.458%)
+ FlatString = 14
+Calls to first_byte on FlatString 216
+Calls to last_byte on FlatString 19
+FlatStrings allocated with length 78 (86.813%)
Length of travel for index distribution:
-* 0 = 20 => occurences 83.333%, cumulative 83.333%
-* 1 = 8 => occurences 21.053%, cumulative 73.684%
+* 0 = 16 => occurences 80.0%, cumulative 80.0%
+* 1 = 14 => occurences 35.0%, cumulative 75.0%
Byte length of the FlatStrings created:
-* 0 = 6 => occurences 4.317%, cumulative 4.317%
-* 1 = 25 => occurences 16.34%, cumulative 20.261%
-* 2 = 31 => occurences 18.563%, cumulative 37.126%
-* 3 = 30 => occurences 16.484%, cumulative 50.549%
-* 4 = 3 => occurences 1.523%, cumulative 48.223%
-* 5 = 20 => occurences 9.434%, cumulative 54.245%
-* 6 = 26 => occurences 11.454%, cumulative 62.115%
-* 9 = 1 => occurences 0.413%, cumulative 58.678%
-* 10 = 10 => occurences 3.891%, cumulative 59.144%
-* 11 = 2 => occurences 0.735%, cumulative 56.618%
-* 12 = 1 => occurences 0.35%, cumulative 54.196%
-* 13 = 1 => occurences 0.334%, cumulative 52.174%
-* 14 = 1 => occurences 0.321%, cumulative 50.321%
-* 15 = 6 => occurences 1.846%, cumulative 50.154%
-* 16 = 7 => occurences 2.059%, cumulative 50.0%
-* 17 = 1 => occurences 0.282%, cumulative 48.169%
-* 25 = 2 => occurences 0.543%, cumulative 47.011%
-* 26 = 1 => occurences 0.262%, cumulative 45.55%
-* 31 = 2 => occurences 0.506%, cumulative 44.557%
-* 32 = 1 => occurences 0.244%, cumulative 43.276%
-* 33 = 1 => occurences 0.237%, cumulative 42.18%
-* 34 = 2 => occurences 0.46%, cumulative 41.379%
-* 36 = 1 => occurences 0.223%, cumulative 40.312%
-* 37 = 1 => occurences 0.216%, cumulative 39.394%
-* 39 = 1 => occurences 0.211%, cumulative 38.526%
-* 40 = 1 => occurences 0.205%, cumulative 37.705%
-* 43 = 1 => occurences 0.2%, cumulative 36.926%
-* 46 = 1 => occurences 0.195%, cumulative 36.187%
-* 51 = 16 => occurences 3.036%, cumulative 38.33%
-* 52 = 5 => occurences 0.923%, cumulative 38.192%
+* 0 = 6 => occurences 4.478%, cumulative 4.478%
+* 1 = 21 => occurences 14.189%, cumulative 18.243%
+* 2 = 33 => occurences 20.37%, cumulative 37.037%
+* 3 = 29 => occurences 16.384%, cumulative 50.282%
+* 4 = 7 => occurences 3.646%, cumulative 50.0%
+* 5 = 20 => occurences 9.662%, cumulative 56.039%
+* 6 = 21 => occurences 9.459%, cumulative 61.712%
+* 9 = 1 => occurences 0.422%, cumulative 58.228%
+* 10 = 9 => occurences 3.571%, cumulative 58.333%
+* 11 = 2 => occurences 0.749%, cumulative 55.805%
+* 12 = 1 => occurences 0.356%, cumulative 53.381%
+* 13 = 1 => occurences 0.34%, cumulative 51.361%
+* 14 = 1 => occurences 0.326%, cumulative 49.511%
+* 15 = 5 => occurences 1.563%, cumulative 49.063%
+* 16 = 7 => occurences 2.09%, cumulative 48.955%
+* 17 = 1 => occurences 0.286%, cumulative 47.143%
+* 25 = 2 => occurences 0.551%, cumulative 46.006%
+* 26 = 1 => occurences 0.265%, cumulative 44.562%
+* 31 = 2 => occurences 0.513%, cumulative 43.59%
+* 32 = 1 => occurences 0.248%, cumulative 42.327%
+* 33 = 1 => occurences 0.24%, cumulative 41.247%
+* 34 = 2 => occurences 0.465%, cumulative 40.465%
+* 35 = 1 => occurences 0.225%, cumulative 39.414%
+* 37 = 1 => occurences 0.219%, cumulative 38.512%
+* 39 = 1 => occurences 0.213%, cumulative 37.66%
+* 40 = 1 => occurences 0.207%, cumulative 36.853%
+* 43 = 1 => occurences 0.202%, cumulative 36.089%
+* 46 = 1 => occurences 0.196%, cumulative 35.363%
+* 48 = 3 => occurences 0.575%, cumulative 35.057%