From: Lucas Bajolet Date: Mon, 14 Dec 2015 15:33:34 +0000 (-0500) Subject: lib: Fixed text_stat with improvements from lib X-Git-Tag: v0.8~18^2~1 X-Git-Url: http://nitlanguage.org?ds=sidebyside lib: Fixed text_stat with improvements from lib Signed-off-by: Lucas Bajolet --- diff --git a/lib/text_stat.nit b/lib/text_stat.nit index f09a454..ed0971d 100644 --- a/lib/text_stat.nit +++ b/lib/text_stat.nit @@ -319,25 +319,20 @@ redef class FlatString 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 @@ -345,7 +340,6 @@ redef class FlatString sys.str_bytelen.inc bytelen sys.str_full_created += 1 first_byte = from - last_byte = to end private var length_cache: nullable Int = null diff --git a/tests/sav/nitcg/test_text_stat.res b/tests/sav/nitcg/test_text_stat.res index 805e398..8fd2394 100644 --- a/tests/sav/nitcg/test_text_stat.res +++ b/tests/sav/nitcg/test_text_stat.res @@ -3,56 +3,55 @@ Usage of Strings: 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% diff --git a/tests/sav/test_text_stat.res b/tests/sav/test_text_stat.res index d017cf8..e320033 100644 --- a/tests/sav/test_text_stat.res +++ b/tests/sav/test_text_stat.res @@ -3,56 +3,54 @@ Usage of Strings: 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%