[рдЕрдиреБрд╡рд╛рдж] рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБред рдХрдиреНрд╡рд░реНрдЯ рдЪрд╛рд░ рд╕реЗ рдмрд╛рдЗрдЯ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд

рдЬрд╛рд╡рд╛ рдХреЛрдб Geeks рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрднреА-рдХрднреА рдЬрд╛рд╡рд╛ рдмреЗрд╕реНрдЯ рдкреНрд░реИрдХреНрдЯрд┐рд╕реЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкреЛрд╕реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреА рд╣реИ - рдЙрддреНрдкрд╛рджрди-рд╕рд┐рджреНрдз рд╕рдорд╛рдзрд╛рдиред рд▓реЗрдЦрдХ рд╕реЗ рдЕрдиреБрдорддрд┐ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкрдж рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ред рдЬреНрдпрд╛рджрд╛ рд╣реИред





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



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



рд▓реЗрдЦ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВред



рд╕реЛрдиреА рд╡рд╛рдпреЛ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдЧрдП:

OS: OpenSUSE 11.1 (x86_64)

рдкреНрд░реЛрд╕реЗрд╕рд░ (CPU): Intel┬о Core (TM) 2 рдбреБрдУ CPU T6670 @ 2.20GHz

рдЖрд╡реГрддреНрддрд┐: 1,200.00 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ

рд░реИрдо: 2.8 рдЬреАрдмреА

рдЬрд╛рд╡рд╛: рдУрдкрдирдЬреЗрдбрдХреЗ 1.6.0_0 64-рдмрд┐рдЯ



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде:

рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдзрд╛рдЧреЗ: 1

рдкреНрд░рдпреЛрдЧ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛: 1,000,000

рдХреБрд▓ рдкрд░реАрдХреНрд╖рдг: 100





рдЪрд╛рд░ рдмрд╛рдЗрдЯ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ:





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

рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред



String рд╡рд░реНрдЧ рдХрд╛ getBytes (charsetName) рд╡рд┐рдзрд┐ рд╕рдВрднрд╡рддрдГ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЙрд╕рдХреЗ рдмрд╛рдЗрдЯ рдХреЗ рд╕рдордХрдХреНрд╖ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред CharsetName рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рд╡рд┐рдзрд┐ рдУрдПрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИред



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



рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧрдВрднреАрд░ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ: рд╣рдо рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ , рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "String.getBytes (charsetName)" рдпрд╛ NIO рдкреИрдХреЗрдЬ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рд╢рд╛рд╕реНрддреНрд░реАрдп" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



ASCII рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ , рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╣реИрдВ:



public static byte[] stringToBytesASCII(String str) { char[] buffer = str.toCharArray(); byte[] b = new byte[buffer.length]; for (int i = 0; i < b.length; i++) { b[i] = (byte) buffer[i]; } return b; }
      
      







рд╕рд░рдгреА рдмреА рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЗ рдорд╛рди рдХреЛ рдмрд╛рдЗрдЯ рдХреЗ рд╕рдордХрдХреНрд╖ рдмрдирд╛рдХрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд░реНрдгреЛрдВ рдХреЗ ASCII рд░реЗрдВрдЬ (0-127) рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдмрд╛рдЗрдЯ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИред



рд╕рд░рдгреА рдмреА рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ "рдирдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдмрд╛рдЗрдЯ [])" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



 System.out.println(new String(stringToBytesASCII("test")));
      
      







рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



 public static byte[] stringToBytesUTFCustom(String str) { char[] buffer = str.toCharArray(); byte[] b = new byte[buffer.length << 1]; for(int i = 0; i < buffer.length; i++) { int bpos = i << 1; b[bpos] = (byte) ((buffer[i]&0xFF00)>>8); b[bpos + 1] = (byte) (buffer[i]&0x00FF); } return b; }
      
      







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



рдФрд░ рд▓рд╛рдЗрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ:



 public static String bytesToStringUTFCustom(byte[] bytes) { char[] buffer = new char[bytes.length >> 1]; for(int i = 0; i < buffer.length; i++) { int bpos = i << 1; char c = (char)(((bytes[bpos]&0x00FF)<<8) + (bytes[bpos+1]&0x00FF)); buffer[i] = c; } return new String(buffer); }
      
      







рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рд┐рддреНрд░ рдХреЛ рдЙрд╕рдХреЗ рдбрдмрд▓-рдмрд╛рдЗрдЯ рд╕рдордХрдХреНрд╖ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдЪрд╛рд░ []) рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдлрд┐рд░ рд╕реЗ рдПрдХ рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред



рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП NIO рдкреИрдХреЗрдЬ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:



 public static byte[] stringToBytesUTFNIO(String str) { char[] buffer = str.toCharArray(); byte[] b = new byte[buffer.length << 1]; CharBuffer cBuffer = ByteBuffer.wrap(b).asCharBuffer(); for(int i = 0; i < buffer.length; i++) cBuffer.put(buffer[i]); return b; } public static String bytesToStringUTFNIO(byte[] bytes) { CharBuffer cBuffer = ByteBuffer.wrap(bytes).asCharBuffer(); return cBuffer.toString(); }
      
      







рдФрд░ рдЕрдм, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред



рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ :







рдлрд░рд╕реАрд╕рд╛ рдЕрдХреНрд╖ рдкрд░реАрдХреНрд╖рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЕрдзрд┐рдХ рддреЗрдЬ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, "String.getBytes ()" рдФрд░ "stringToBytesUTFNIO (String)" рдиреЗ "stringToBytesASCII (рд╕реНрдЯреНрд░рд┐рдВрдЧ)" рдФрд░ "stringToBytesUTCustom (рд╕реНрдЯреНрд░рд┐рдВрдЧ)" рд╕реЗ рдмрд╣реБрдд рдмрджрддрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓рдЧрднрдЧ 30% рдХреА рд╡реГрджреНрдзрд┐ рд╣рд╛рд╕рд┐рд▓ рдХреАред



рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯ рд╕рд░рдгреА :







рдкрд░рд┐рдгрд╛рдо рдлрд┐рд░ рд╕реЗ рдЙрддреНрд╕рд╛рд╣рдЬрдирдХ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рддрд░реАрдХреЛрдВ рдиреЗ "рдирдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдмрд╛рдЗрдЯ [])" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 15% рдХреА рд╡реГрджреНрдзрд┐ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ рдФрд░ "рдмрд╛рдЗрдЯреНрд╕ рдЯреНрд░рд╛рдИрдВрдЧрд░реВрдЯрдлрд╝реНрдирд┐рдпреЛ (рдмрд╛рдЗрдЯ])" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 30% рдХреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред



рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ: рдпрджрд┐ рдЖрдкрдХреЛ рдмрд╛рдЗрдЯ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рддрд░реАрдХреЛрдВ рдиреЗ рд╢рд╛рд╕реНрддреНрд░реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрд▓ 45% рддреНрд╡рд░рдг рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ред



рдЦреБрд╢ рдХреЛрдбрд┐рдВрдЧред






All Articles