Half the memory usage by replacing char[0] with char.index
Numbers are for a 379KB (5000k line) build log…
Before:
Total allocated 770608
Total retained 1
allocated memory by gem
-----------------------------------
terminal/lib x 64775519
allocated memory by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 63971697
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb x 803822
allocated memory by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 31009169
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 30208960
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:154 x 784084
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:139 x 783895
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:287 x 399920
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:149 x 393699
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:147 x 392180
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:32 x 388895
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:290 x 383291
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:114 x 6929
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:252 x 6642
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:150 x 3726
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:102 x 2449
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:104 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:117 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:105 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:122 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:284 x 960
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:168 x 640
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:264 x 480
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:176 x 480
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:22 x 80
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:73 x 80
allocated objects by gem
-----------------------------------
terminal/lib x 770608
allocated objects by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 765380
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb x 5228
allocated objects by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 387613
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 377612
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:287 x 4999
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:114 x 85
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:252 x 54
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:150 x 36
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:102 x 29
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:117 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:122 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:105 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:104 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:149 x 21
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:284 x 12
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:168 x 8
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:176 x 6
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:264 x 6
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:154 x 4
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:147 x 4
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:290 x 2
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:32 x 2
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:22 x 1
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:139 x 1
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:73 x 1
retained memory by gem
-----------------------------------
terminal/lib x 388815
retained memory by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 388815
retained memory by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:32 x 388815
retained objects by gem
-----------------------------------
terminal/lib x 1
retained objects by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 1
retained objects by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:32 x 1
Allocated String Report
-----------------------------------
" " x 98742
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 49362
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 49362
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:252 x 18
"1" x 52068
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 26034
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 26034
"e" x 48198
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 24099
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 24099
"0" x 41956
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 20950
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 20950
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:114 x 42
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:104 x 14
"a" x 32354
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 16177
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 16177
"t" x 27270
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 13635
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 13635
"2" x 26840
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 13420
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 13420
"u" x 26068
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 13034
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 13034
"-" x 23554
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 11777
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 11777
"," x 21022
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 10511
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 10511
"5" x 19392
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 9696
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 9696
"m" x 18698
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 9335
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 9335
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:105 x 28
"c" x 17794
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 8897
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 8897
"i" x 17764
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 8882
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 8882
"." x 17400
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 8700
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 8700
":" x 16628
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 8314
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 8314
"n" x 16050
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 8025
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 8025
"C" x 15412
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 7706
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 7706
"8" x 15146
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 7573
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 7573
"=" x 14358
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 7179
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 7179
"s" x 13992
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 6996
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 6996
"%" x 13778
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 6889
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 6889
"r" x 13416
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 6708
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 6708
"9" x 13324
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 6662
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 6662
"l" x 12190
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 6095
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 6095
"p" x 12022
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 6011
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 6011
"o" x 11698
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 5849
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 5849
"d" x 10906
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 5453
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 5453
"g" x 10784
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 5392
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 5392
"\n" x 9999
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 5000
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:287 x 4999
"v" x 9220
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 4610
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 4610
"6" x 7274
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 3637
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 3637
"S" x 6924
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 3462
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 3462
"U" x 6684
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 3342
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 3342
"P" x 6660
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 3330
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 3330
"3" x 5004
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 2502
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 2502
"\r" x 5000
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 5000
"4" x 4916
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 2458
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 2458
"7" x 3798
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 1899
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 1899
"/" x 3136
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 1568
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 1568
"f" x 1814
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 907
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 907
"_" x 1756
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 878
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 878
"h" x 1702
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 851
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 851
"b" x 1656
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 828
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 828
"x" x 1416
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 708
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 708
"w" x 1362
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 681
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 681
"j" x 1342
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 671
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 671
"E" x 1110
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 555
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 555
"k" x 1028
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 514
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 514
"I" x 914
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:86 x 457
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 457
After:
Total allocated 392996
Total retained 2
allocated memory by gem
-----------------------------------
terminal/lib x 34566559
allocated memory by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 33762737
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb x 803822
allocated memory by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 31009169
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:150 x 784084
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:135 x 783895
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:287 x 399920
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:145 x 393699
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:143 x 392180
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:64 x 388895
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:290 x 383291
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:114 x 6929
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:252 x 6642
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:146 x 3726
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:98 x 2449
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:100 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:117 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:122 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 2240
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:284 x 960
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:168 x 640
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:264 x 480
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:176 x 480
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:22 x 80
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:69 x 80
allocated objects by gem
-----------------------------------
terminal/lib x 392996
allocated objects by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 387768
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb x 5228
allocated objects by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 387613
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:287 x 4999
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:114 x 85
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:252 x 54
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:146 x 36
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:98 x 29
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:100 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:122 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:117 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 28
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:145 x 21
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:284 x 12
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:168 x 8
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:176 x 6
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:264 x 6
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:150 x 4
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:143 x 4
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:64 x 2
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:290 x 2
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:135 x 1
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:69 x 1
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:22 x 1
retained memory by gem
-----------------------------------
terminal/lib x 388895
retained memory by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 388895
retained memory by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:64 x 388815
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:22 x 80
retained objects by gem
-----------------------------------
terminal/lib x 2
retained objects by file
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb x 2
retained objects by location
-----------------------------------
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:64 x 1
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:22 x 1
Allocated String Report
-----------------------------------
" " x 49380
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 49362
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:252 x 18
"1" x 26034
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 26034
"e" x 24099
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 24099
"0" x 21006
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 20950
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:114 x 42
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:100 x 14
"a" x 16177
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 16177
"t" x 13635
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 13635
"2" x 13420
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 13420
"u" x 13034
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 13034
"-" x 11777
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 11777
"," x 10511
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 10511
"\n" x 9999
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 5000
/Users/tim/Codez/buildkite/terminal/lib/terminal/screen.rb:287 x 4999
"5" x 9696
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 9696
"m" x 9363
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 9335
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:101 x 28
"c" x 8897
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 8897
"i" x 8882
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 8882
"." x 8700
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 8700
":" x 8314
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 8314
"n" x 8025
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 8025
"C" x 7706
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 7706
"8" x 7573
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 7573
"=" x 7179
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 7179
"s" x 6996
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 6996
"%" x 6889
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 6889
"r" x 6708
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 6708
"9" x 6662
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 6662
"l" x 6095
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 6095
"p" x 6011
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 6011
"o" x 5849
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 5849
"d" x 5453
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 5453
"g" x 5392
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 5392
"\r" x 5000
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 5000
"v" x 4610
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 4610
"6" x 3637
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 3637
"S" x 3462
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 3462
"U" x 3342
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 3342
"P" x 3330
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 3330
"3" x 2502
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 2502
"4" x 2458
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 2458
"7" x 1899
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 1899
"/" x 1568
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 1568
"f" x 907
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 907
"_" x 878
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 878
"h" x 851
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 851
"b" x 828
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 828
"x" x 708
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 708
"w" x 681
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 681
"j" x 671
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 671
"E" x 555
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 555
"k" x 514
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 514
"I" x 457
/Users/tim/Codez/buildkite/terminal/lib/terminal/renderer.rb:82 x 457
Half the memory usage by replacing
char[0]
withchar.index
Numbers are for a 379KB (5000k line) build log…
Before:
After: