рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░редрд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реБрдИ рдХрд┐
64-рдмрд┐рдЯ рдЙрдмрдВрдЯреВ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди, рдЕрдЬрдЧрд░ рдореЗрдВ рдкрд╛рдпрдерди 3 рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
рдЧреНрд▓рд┐рдмрдХ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдореЙрд▓реЛрдХ рдПрд▓реЛрдХреЗрдЯрд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдвреЗрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрд▓реНрдореЛрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдвреЗрд░ рд╕реЗ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛ рд╣реИ (128KB рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ), рддреЛ рдореЗрдореЛрд░реА рдХреЛ рдореБрдлреНрдд рд╡рд┐рдЦрдВрдбреВ рдХреА рд╕реВрдЪреА рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЗрдореЛрд░реА рдХреЛ mmap
(sbrk, brk) рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Mmap рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рднреМрддрд┐рдХ рдореЗрдореЛрд░реА рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИред рдореЗрдореЛрд░реА рдХреЛ 4KB рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрдбрд╝реЗ рдЪрдВрдХреНрд╕ (128KB рд╕реЗ рдЕрдзрд┐рдХ) рд╣рдореЗрд╢рд╛ mmap рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░рддреЗ рд╕рдордп, рдпрджрд┐ рдПрдХ рдореБрдХреНрдд рдЫреЛрдЯрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдирдлрд╝рд░реЛрдЬрд╝реЗрди рдореЗрдореЛрд░реА рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдкрд░ рд╕реАрдорд╛рдУрдВ рдХрд╛ рд╣реИ, рддреЛ рдореЗрдореЛрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рдмрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рддреБрд░рдВрдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред
рд╕реА рдореЗрдВ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рдПрдХ
рд╡реНрдпрд╛рдЦреНрдпрд╛рди рд╕реЗ рд▓реА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА
редрд╕реАрдкреАрдереЙрди рдХреЗ рдкрд╛рд╕ "рдирд┐рдЬреА рд╣реАрдк" рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ (PyMalloc) рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдЬреЛ рдкрд╣рд▓реЗ "рд╢реАрд░реНрд╖ рдкрд░" рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред PyMalloc рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ Arenas рдирд╛рдордХ рдореЙрд▓реЛрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 256KB рдореЗрдореЛрд░реА рдЪрдВрдХреНрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдмрджрд▓реЗ рдореЗрдВ, 4KB рджреНрд╡рд╛рд░рд╛ рдкреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреВрд▓ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рд╡рд┐рдЦрдВрдбреВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ 64 рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рднрд╛рдЧ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд рдЪрдВрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ PyMalloc рдкрд╣рд▓реЗ рдПрд░рд┐рдирд╛ рд╕реЗ рдПрдХ рдирдпрд╛ рдкреВрд▓ рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдирдП рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реИ (Arenas "рдЕрдзрд┐рднреЛрдЧ рдХреЗ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ" рдХреНрд░рдордмрджреНрдз рд╣реИрдВ)ред рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ PyMalloc OS рд╕реЗ рдПрдХ рдирдП рдПрд░рд┐рдирд╛ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИред рд╕рд┐рд╡рд╛рдп рдЬрдм рдЕрдиреБрд░реЛрдзрд┐рдд рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░ 512B рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдореЗрдореЛрд░реА рдХреЛ рд╕реАрдзреЗ рдореЙрд▓реЛрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдореГрддрд┐ рдУрдПрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЪрдВрдХреНрд╕ рдмрд╕ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓, рдФрд░ рдкреВрд▓ рд╕реЗ рдПрд░реЗрдирд╛рд╕ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред рдЕрдЦрд╛рдбрд╝рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдЪрдВрдХреНрд╕ рдЗрд╕рд╕реЗ рдореБрдХреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдПрд░рд┐рдирд╛ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрдВрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдПрд░рд┐рдирд╛ рдореЗрдВ рд╕рднреА рд╕рдорд╛рди рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреАрд╡реАрдПрдо рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ 128KB рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдЪреЗрдВрдЬ рдХреЛ рдПрдордПрдордПрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлреНрд░реА рдПрд░рд┐рдирд╛ рддреБрд░рдВрдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред
рдореИрдВ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
- рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ рдЕрдЦрд╛рдбрд╝рд╛ рдмрдирд╛рддреЗ рд╕рдордп PyMalloc рднреМрддрд┐рдХ рд╕реНрдореГрддрд┐ рдХрд╛ 256KB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреЗрд╡рд▓ рдореБрдлреНрдд рдЕрд░реНрдирд╕ рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
iterations = 2000000 l = [] for i in range(iterations): l.append(None) for i in range(iterations): l[i] = {} s = []
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, 2 рдорд┐рд▓рд┐рдпрди рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА l рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬреЛ рд╕рднреА рдХрд┐рд╕реА рдПрдХ рд╡рд╕реНрддреБ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реЗ рдЪрдХреНрд░ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдЦрд╛рд▓реА рд╢рдмреНрджрдХреЛрд╢ред рдлрд┐рд░ рдПрдХ рджреВрд╕рд░реА рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рддрддреНрд╡ рдкрд╣рд▓реА рд╕реВрдЪреА рдХреЗ рдХреБрдЫ рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реЗ рдХреНрд░реЙрд▓ рдХреЗ рдмрд╛рдж, рд╕реВрдЪреА l рд╕реЗ рдЖрдЗрдЯрдо рдлрд┐рд░ рд╕реЗ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЕрдВрддрд┐рдо рдЪрдХреНрд░ рдореЗрдВ, рдкрд╣рд▓реА рд╕реВрдЪреА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдПрд╕ рд╕реВрдЪреА рд╡рд┐рдХрд▓реНрдк:
s = []
s = l[::2]
s = l[200000 // 2::]
s = l[::100]
рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрдореЛрд░реА рдЦрдкрдд рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рд╣рдо рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ PyMalloc рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВрдЧреЗ:
export PYTHONMALLOCSTATS="True" && python3 source.py 2>result.txt
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛
рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдмреНрд╕рд┐рд╕реНрд╕рд╛ рдЕрдХреНрд╖ рдкрд░ рдЙрд╕ рд╕рдордп рдХреЗ рд╕рд╛рде рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ рдЬрдм рдРрд╕реА рдЦрдкрдд рд╣реБрдИ рдереА, рдмрд╕ рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдЗрд╕рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
"рдЗрд╕рдХреЗ рдмрд┐рдирд╛"
рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реВрдЪреА рдПрд╕ рдЦрд╛рд▓реА рд╣реИред рджреВрд╕рд░реЗ рдЪрдХреНрд░ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд▓рдЧрднрдЧ 500 рдПрдордмреА рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рд╣реЛрддреА рд╣реИред рдФрд░ рдЗрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рддреАрд╕рд░реЗ рдЪрдХреНрд░ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред рдЕрдВрддрд┐рдо рдЪрдХреНрд░ рдореЗрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдлрд┐рд░ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдЙрд╕реА 500 рдПрдордмреА рдХреА рдЦрдкрдд рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
"рд╣рд░ рджрд┐рди"
рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рд╣рдо рд╕реВрдЪреА рдПрд▓ рдХреЗ рд╣рд░ рджреВрд╕рд░реЗ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореЗрдореЛрд░реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд▓рдЧрднрдЧ 250 рдПрдордмреА рдХреЗ рд╢рдмреНрджрдХреЛрд╢ рд╣рдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдкреВрд▓ рдореЗрдВ рдЪрдВрдХреНрд╕ рд╣реИрдВ рдЬреЛ рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╕рдВрдмрдВрдзрд┐рдд рдПрд░реЗрдирд╛рд╕ рдХреЛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЬрдм рд╣рдо рджреВрд╕рд░реА рдмрд╛рд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдкреВрд▓реЛрдВ рд╕реЗ рдореБрдХреНрдд рдЪреВрдЬреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ 250 рдПрдордмреА рдирдИ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
"рджреВрд╕рд░реА рдЫрдорд╛рд╣реА"
рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рд╣рдо рд╕реВрдЪреА рдПрд▓ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рджреВрд╕рд░реЗ рдЫрдорд╛рд╣реА рд╕реЗ рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрд░реЗрдирд╛рд╕ рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд▓рдЧрднрдЧ 250 рдПрдордмреА рдореЗрдореЛрд░реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд▓рдЧрднрдЧ 500 рдПрдордмреА рдХреЛ рдирдП рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ 750 рдПрдордмреА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреБрд▓ рдЦрдкрддред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреВрд╕рд░реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореЗрдореЛрд░реА рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред рдЬреЛ, рдПрдХ рдУрд░, рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЗрд╕ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреВрд╕рд░реА рдУрд░, рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдЗрд╕реЗ рдореБрдлреНрдд рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
"рд╣рд░ рд╕реМрд╡рд╛рдВ"
рдЖрдЦрд┐рд░реА рдорд╛рдорд▓рд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рд╣рдо рдкрд╣рд▓реА рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реМрд╡реЗрдВ рддрддреНрд╡ рд╕реЗ рджреВрд╕рд░реА рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 5MB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдЦрд╛рдбрд╝реЗ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рдЪреВрдЬреЗ рдмрдиреЗ рд╣реБрдП рд╣реИрдВ, рдЗрд╕ рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЦрдкрдд 500 рдПрдордмреА рдХреЗ рд╕реНрддрд░ рдкрд░ рдмрдиреА рд╣реБрдИ рд╣реИред рдЬрдм рд╣рдо рджреВрд╕рд░реА рдмрд╛рд░ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд▓рдЧрднрдЧ рдХреЛрдИ рдирдИ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЬреЛ рдЪрдВрдХреНрд╕ рдкрд╣рд▓реА рдмрд╛рд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдЙрдирдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореЗрдореЛрд░реА рд╡рд┐рдЦрдВрдбрди рдХреЗ рдХрд╛рд░рдг, рд╣рдо рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ 100 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЬрдм рдЗрд╕ рдореЗрдореЛрд░реА рдХреА рдмрд╛рд░-рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХрдИ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрдореЛрд░реА рд╡рд┐рдЦрдВрдбрди рд╕рдВрднрд╡ рд╣реИред рдлрд┐рд░ рднреА, рдЖрдкрдХреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЦреЛрдЬ рдкреЗрдбрд╝ред рдХреНрдпреЛрдВрдХрд┐ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдордирдорд╛рдирд╛ рд╕рдВрдЪрд╛рд▓рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рд╕рдВрджреЗрд╣ рдореЗрдВ рд╣реЛрдЧреАред
рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб def parse_result(filename): ms = [] with open(filename, "r") as f: for line in f: if line.startswith("Total"): m = float(line.split()[-1].replace(",", "")) / 1024 / 1024 ms.append(m) return ms ms_1 = parse_result("_1.txt") ms_2 = parse_result("_2.txt") ms_3 = parse_result("_3.txt") ms_4 = parse_result("_4.txt") import matplotlib.pyplot as plt plt.figure(figsize=(20, 15)) fontdict = { "fontsize": 20, "fontweight" : 1, } plt.subplot(2, 2, 1) plt.title(" ", fontdict=fontdict, loc="left") plt.plot(ms_1) plt.grid(b=True, which='major', color='#666666', linestyle='-.') plt.minorticks_on() plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2) plt.tick_params(axis='both', which='major', labelsize=15, labelbottom=False) plt.ylabel("MB", fontsize=15) plt.subplot(2, 2, 2) plt.title(" ", fontdict=fontdict, loc="left") plt.plot(ms_2) plt.grid(b=True, which='major', color='#666666', linestyle='-.') plt.minorticks_on() plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2) plt.tick_params(axis='both', which='major', labelsize=15, labelbottom=False) plt.ylabel("MB", fontsize=15) plt.subplot(2, 2, 3) plt.title(" ", fontdict=fontdict, loc="left") plt.plot(ms_3) plt.grid(b=True, which='major', color='#666666', linestyle='-.') plt.minorticks_on() plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2) plt.tick_params(axis='both', which='major', labelsize=15, labelbottom=False) plt.ylabel("MB", fontsize=15) plt.subplot(2, 2, 4) plt.title(" ", fontdict=fontdict, loc="left") plt.plot(ms_4) plt.grid(b=True, which='major', color='#666666', linestyle='-.') plt.minorticks_on() plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2) plt.tick_params(axis='both', which='major', labelsize=15, labelbottom=False) plt.ylabel("MB", fontsize=15)