рдХрдЪрд░рд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓реЛ!

рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдФрд░ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рдЪрд░реНрдЪрд╛ рд╣реЛ рдЪреБрдХреА рд╣реИ, рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред





рд╕реА # рдореЗрдВ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рджреГрд╢реНрдпрдорд╛рди рдЪрд░ рдирд╣реАрдВ рд╣реИрдВ, рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ C # рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдереАред рдЪреВрдВрдХрд┐ рдХрдИ рдЬреЗрдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕рднреА рдЕрд▓рдЧ рд╣реИрдВ, рдореИрдВрдиреЗ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдпрд╣ рд▓реЛрдХрдкреНрд░рд┐рдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЯреЗрд╕реНрдЯ рд╣реЛрдВрдЧреЗ: IE, рдХреНрд░реЛрдо, FF рдФрд░ рдУрдкреЗрд░рд╛ред рдУрдПрд╕: win7 32 рдмрд┐рдЯред



рддреЛ, рдЪрд▓реЛ рдмрд╕ рд╕реНрдореГрддрд┐ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

рдЯреЗрд╕реНрдЯ 1 (рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди):



function test1() { var buff = []; for (var i = 0; i < sz; i++) buff.push(i); alert(1); var buff2 = []; for (var i = 0; i < sz; i++) buff2.push(sz - i); alert(2); }
      
      





рдореИрдВ рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ (рдирд┐рдЬреА рдХрд╛рдордХрд╛рдЬреА рд╕реЗрдЯ) рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдХреЛ рдорд╛рдкрддрд╛ рд╣реВрдВ, рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреНрд░реИрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рд╕реНрдореГрддрд┐ рдЦрдкрдд рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди (рдХреЗрдмреА рдореЗрдВ) рдХреНрд░рдо рдореЗрдВ рдЬрд╛рдирд╛:

тЖТ тЖТ рдкрд╣рд▓рд╛ рдЕрд▓рд░реНрдЯ тЖТ рджреВрд╕рд░рд╛ рдЕрд▓рд░реНрдЯ (рдХреЛрд╖реНрдардХ рдореЗрдВ - рдкрд░рд┐рд╡рд░реНрддрди)

рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рдореВрд▓реА рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдХрд░реВрдВрдЧрд╛ (~ 0)



IE8: sz = 2e6;

рдЖрдЗрдП IE8 рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдзреАрдорд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ рд▓реЗрддреЗ рд╣реИрдВ (sz) - 2 рдорд┐рд▓рд┐рдпрди

рдореЗрдореЛрд░реА: 9036 тЖТ 87476 тЖТ 167880 (+78440, +80404)

рдЪрд▓реЛ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВ (рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЕрдЪрд╛рдирдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛), рд▓реЗрдХрд┐рди рдореЗрдореЛрд░реА рдХрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: 167868 тЖТ 248260 тЖТ 328640 (+80392, +80380)

рдлрд┐рд░ рд╕реЗ рдПрдХ рдРрд╕реА рд╣реА рддрд╕реНрд╡реАрд░ред рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрдм рддрдХ IE 1GB рд╕реНрдореГрддрд┐ рдЦрд╛ рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ рдЙрд╕реЗ рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреЗрд▓рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ (рдФрд░ рдЕрдЪрд╛рдирдХ рд╡рд╣ рдЕрднреА рднреА рдХрдЪрд░рд╛ рд╣рдЯрд╛ рджреЗрдЧрд╛), рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖ : рдЬрдм рддрдХ рдЖрдк рдЯреИрдм рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рддрдм рддрдХ IE8 рд╕реНрд╡рдпрдВ рдХрдЪрд░рд╛ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓реЗрдЧрд╛ / F5 рджрдмрд╛рдПрдЧрд╛ред



рдХреНрд░реЛрдо 8.0.552.237): sz = 10e6;

рдЕрдЧрд▓рд╛ рдХреНрд░реЛрдо рдЖрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдордЬрдмреВрдд рдмрджрд▓рд╛рд╡ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП)

рдореЗрдореЛрд░реА: 5072 тЖТ 78480 тЖТ 143624 (+73408, +78480)

рдкреНрд░рддреАрдХреНрд╖рд╛: 143676 (~ 0)

рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВ: 143676 тЖТ 72636 тЖТ 112604 (-71040, +39968)

рдлрд┐рд░ рд╕реЗ рдЗрдВрддрдЬрд╛рд░: 112608 (~ 0)

рддреАрд╕рд░рд╛ рд▓реЙрдиреНрдЪ: 112608 тЖТ 96092 тЖТ 148704 (-16516, +52612)

рдкреНрд░рддреАрдХреНрд╖рд╛: 148700 (~ 0)

рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ (рдорд┐рдирдЯ 5): 5356 (-143344)

рдирд┐рд╖реНрдХрд░реНрд╖ : рдХреНрд░реЛрдо рдпрд╛ рддреЛ рдХрдЪрд░рд╛ рддрдм рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдЬрдм рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдЦреБрдж, рдмрд▓реНрдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд╛рджред



рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3.6.13: sz = 20e6;

рдУрдЧреЗрд▓рд┐рд╕ рдиреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рд╕рд░рдгреА рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдореЗрдореЛрд░реА: 39064 тЖТ 124968 тЖТ 211180 (+85904, +86212)

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ: 211164 (~ 0)

рдХреЛрд╢рд┐рд╢ 2: 211164 тЖТ 297480 тЖТ 383592 (+86316, +86112)

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ: 211280 (-172312)

рдкреНрд░рддреАрдХреНрд╖рд╛: 38908 (-172372)

рдирд┐рд╖реНрдХрд░реНрд╖ : рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреНрд░реЛрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝реА рд╕реЗ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ (~ 1min)ред



рдУрдкреЗрд░рд╛ 11.00 (рдмрд┐рд▓реНрдб 1156): sz = 10e6;

рдореЗрдореЛрд░реА: 20ремрекрейрем тЖТ рейрек реп реирекрек тЖТ ремрезреиреж реп рем (рел:реи ,реж +26, рел:реи64релреи)

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ: 87736 (-524360)

рдХреЛрд╢рд┐рд╢ реи: 100100рейрем тЖТ рейрек репреп реи тЖТ тЖТ ремрезреирезрежреж (рел:реирез реп реи, рел:реирез 8реи)

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ: 87748 (-524352)

рдУрдкреЗрд░рд╛ рдиреЗ рдЕрдиреНрдп рдкрд░реНрдпрд╛рдкреНрдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ (рдЕрдзрд┐рдХ рд╕рд┐рд░реНрдл IE рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдРрд╕рд╛ рдХрд┐рдпрд╛ред рд╕реНрдореГрддрд┐ рдХреЛ рднреА рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо:

IE8 - рдзреАрдорд╛, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП ~ 40 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ

Chrome8 - рдФрд╕рдд рдЧрддрд┐, рдкреНрд░рддрд┐ рдирдВрдмрд░ ~ 8 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ

FF3.6 - рдФрд╕рдд рдЧрддрд┐, рдкреНрд░рддрд┐ рдирдВрдмрд░ ~ 4.4 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ

рдУрдкреЗрд░рд╛ 11 - рдЙрдЪреНрдЪ рдЧрддрд┐, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП ~ 27 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ (sz = 10e6 рдХреЗ рд╕рд╛рде)

рдФрд░ ~ 16 рдмрд╛рдЗрдЯ sz = 1e6 рдХреЗ рд╕рд╛рде



Test2 (рд╕реНрдкрд╖реНрдЯ рдореБрдХреНрдд рдореЗрдореЛрд░реА):



IE рдХреЛ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЕрдм рдЗрд╕ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

IE8: sz = 2e6;

рд▓рдВрдмрд╛рдИ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ = 0:

рдореЗрдореЛрд░реА: 10912 тЖТ 89352 тЖТ 169760 тЖТ 169760 тЖТ 169760

рдмрдлрд╝ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

рдореЗрдореЛрд░реА: 12848 тЖТ 89356 тЖТ 169752 тЖТ 169740 тЖТ 169740

рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

рдореЗрдореЛрд░реА: 12972 тЖТ 89464 тЖТ 169852 тЖТ 250368 тЖТ 330760,

рдпрд╣рд╛рдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рдгреА рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдкреЙрдк рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

рдореЗрдореЛрд░реА: 6776 тЖТ 85192 тЖТ 165508 тЖТ 165508 тЖТ 165508

рдкрд░рд┐рдгрд╛рдо : рдкреВрд░реНрдг рд╡рд┐рдлрд▓рддрд╛ред IE8 рдХрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХ рдПрдХ рдорд┐рдердХ рд╣реИред



рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рддреАрди рд╢реЗрд╖ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред



рдЯреЗрд╕реНрдЯ 3 (рдЬреЛ рд╡рд╕реНрддреБрдПрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ):



 function test3() { var buff = []; for (var i = 0; i < sz; i++) buff.push(i); alert(1); var buff2 = []; for (var i = 0; i < sz; i++) buff2.push(sz - i); alert(2); return function(x) { alert(buff.length); } }
      
      





Chrome 8: sz = 10e6;

рдореЗрдореЛрд░реА: 4796 тЖТ 72720 тЖТ 139956 тЖТ -05 45232

тЖТ тЖТ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдкреНрд░рддреАрдХ рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛

рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕: 8924 тЖТ 88000 тЖТ 135100 тЖТ -05 135092

рддреАрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕: 135092 тЖТ 151036 тЖТ 174128 тЖТ -05 46092

рдкрд░рд┐рдгрд╛рдо : рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрднрд┐рдд рдмрдВрдж рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреАрд╕реА рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдПред



рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3.6: sz = 20e6;

рдореЗрдореЛрд░реА: 39864 тЖТ 124812 тЖТ 210752 тЖТ -05 124560

рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕: 124560 тЖТ 210772 тЖТ 296928 тЖТ -05 124544

рдкрд░рд┐рдгрд╛рдо : рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрднрд┐рдд рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреАрд╕реА рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рдУрдкреЗрд░рд╛ 11: sz = 10e6;

рдореЗрдореЛрд░реА: 102072 тЖТ 364268 тЖТ 626448 тЖТ -05 364760

рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕: 364760 тЖТ 626940 тЖТ 889108 тЖТ -05 364752

рдкрд░рд┐рдгрд╛рдо : рдЦрдкрдд рдХреА рдЧрдИ рд╕реНрдореГрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрднрд┐рдд рдмрдВрдж рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреАрд╕реА рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕рд╛ рдмрд┐рд▓рдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ ...



рдЕрдм js рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ: рдХреНрд▓реЛрдЬрд░ рдХреЗ рдЕрдВрджрд░ eval () рдбрд╛рд▓реЗрдВ

Test4 (рдЕрдВрджрд░ eval рдХреЗ рд╕рд╛рде рдмрдВрдж):



 function test4() { var buff = []; for (var i = 0; i < sz; i++) buff.push(i); alert(1); var buff2 = []; for (var i = 0; i < sz; i++) buff2.push(sz - i); alert(2); return function(x) { alert(buff[0]); eval(x); } } function z() { document.getElementById("div1").x("alert(buff2[0])"); }
      
      





 <div onclick="this.x = test4()" id="div1">test4()</div> <div onclick="z()">z()</div>
      
      





рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдм рд╕рднреА рдЪрд░ рдХреЛ рдмрдВрдж рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдХреНрдпрд╛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ?



рдХреНрд░реЛрдо:

рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ z () рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3.6: sz = 20e6;

рдореЗрдореЛрд░реА: 39300 тЖТ 125696 тЖТ 210732 тЖТ -05 210256

рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕: 210256 тЖТ 298340 тЖТ 383496 тЖТ -05 211112

рдкрд░рд┐рдгрд╛рдо : eval рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд▓реЛрдЬрд░ рд╕рднреА рдШреЛрд╖рд┐рдд рдЪрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛ред рдЬреИрд╕реА рдХреА рдЙрдореНрдореАрдж рдереАред



рдУрдкреЗрд░рд╛ 11: sz = 10e6;

рдореЗрдореЛрд░реА: 102076 тЖТ 364272 тЖТ 626456 тЖТ -05 364764

рдореЗрдореЛрд░реА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреНрд▓реЛрдЬрд░ рдореЗрдВ eval рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, eval рдХреЗ рд╕рд╛рде z () рдЯреЗрд╕реНрдЯ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред



рдмрд╣реБрдд рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ред рдпрджрд┐ рд╕реНрдореГрддрд┐ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рд╕реЗ рдореБрдХреНрдд рд╣реЛ рдЧрдИ рд╣реИ рддреЛ рдмрдлрд╝ 2 рд╕рд░рдгреА рдХрд╣рд╛рдБ рд╕реЗ рдЖрддреА рд╣реИ? рдХреНрдпрд╛ рдУрдкреЗрд░рд╛ рдХрд┐рд╕реА рддрд░рд╣ рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ?



рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╕рд┐рд░реНрдл рд╕рд░рдгреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ:

test5:



 function test5() { var buff = []; for (var i = 0; i < sz; i++) buff.push(i); alert(1); var buff2 = []; for (var i = 0; i < sz; i++) buff2.push(sz - i); alert(2); return { a: buff, b: buff2 }; //return { a: buff }; }
      
      





рдУрдкреЗрд░рд╛:

2 рдСрдмреНрдЬреЗрдХреНрдЯ: 41764 тЖТ 304324 тЖТ 567088 тЖТ -05 304556

1 рд╡рд╕реНрддреБ: 41896 тЖТ 304348 тЖТ 567108 тЖТ -05 173240



рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрдкреЗрд░рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рд╢рд╛рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдкреИрдХ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ 4 рдФрд░ 3 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рд╡рд╣ рджрд╛рдпрд░реЗ рд╕реЗ рд╕рднреА рдЪрд░ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреА рд╣реИред



рддреЛ, InternetExplorer рднреА рд╕рдВрд╕реНрдХрд░рдг 8 рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдмрдбрд╝реЗ рдРрд░реЗ рдХреЛ рдмрд╣реБрдд рд╕рдВрдпрдо рд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ (рдЬреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмрдзрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд▓реЛрдЬрд╝рд░ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░реЗрдВред

рджреВрд╕рд░реА рдУрд░, рдУрдкреЗрд░рд╛ рд╕рднреА рджреГрд╢реНрдпрдорд╛рди рдЪрд░ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╛рдЗрдЯ рдкреГрд╖реНрдареЛрдВ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ 10 рдорд┐рд▓рд┐рдпрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред



PS:

chepetsk.ru

:

ibm.com/developerworks/web/library/wa-memleak/

blogs.msdn.com/b/oldnewthing/archive/2006/08/02/686456.aspx










All Articles