рдХреБрдЫ рдЖрд░ рдореЗрдВ bigint рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдЫреВрддрд╛ рд╣реИ

рд╣рд░ рдмрд╛рд░ рдПрдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рд░рд┐рдХреЙрд░реНрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ, рд╡рд╕реНрддреБрдУрдВ, рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд╛ рд╡рд┐рд╖рдп рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдмрд╛рддрдЪреАрдд рдкрд░ рдХрдИ рдорд╣реАрдиреЛрдВ рддрдХ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред int - bigint - guid , рдлрд┐рд░ рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВред рд╡реЙрд▓реНрдпреВрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрд░ рдореЗрдВ рдХреЛрдИ bigint рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рд╣реИ (рдХреНрд╖рдорддрд╛ ~ 2 ^ 64), рдРрд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рд╣реА рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдЪреБрдирд╛рд╡ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдиреАрдЪреЗ рдХреБрдЫ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рдЪрд╛рд░ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЯрдорд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рддреАрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:


  • рд╕рдореВрд╣;
  • рдЫрд╛рдирдиреЗ;
  • рдПрд╕реЛрд╕рд┐рдПрд╢рдиред

рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВрдЧреЗред


рдпрд╣ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рд╣реИред


string рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ


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


рд╡рд┐рдкрдХреНрд╖ рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдЙрдЪреНрдЪ рдореЗрдореЛрд░реА рдЦрдкрдд, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕реВрдЪрдирд╛ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐, рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рдФрд░ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕реНрддрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╣реНрд░рд╛рд╕ред


рд╣рдо bit64 рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ


рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рд╕реБрдирд╛ рд╣реИ рд╡реЗ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИред рдХрд╛рд╢, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реЛрддрд╛ред рди рдХреЗрд╡рд▓ рдпрд╣ numeric рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдРрдб-рдСрди рд╣реИ (рдЙрджреНрдзрд░рдг: ' рдлрд┐рд░ рд╕реЗ рдкрд╕рдВрдж рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдЖрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ 64 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдбрдмрд▓реНрд╕ред рдбрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред
рдкреВрд░реНрдгрд╛рдВрдХ 64 рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ред рдкрд░рдорд╛рдгреБ, рд▓рдВрдмрд╛рдИ, рд▓рдВрдмрд╛рдИ <-, рдирд╛рдо, рдирд╛рдо <-, рдордВрдж, рдордВрдж <-, рдордВрджрдирд╛рдо, рдордВрджрдирд╛рдоред ' ), рдЗрд╕рд▓рд┐рдП рдЕрднреА рднреА рдмреБрдирд┐рдпрд╛рджреА рдЕрдВрдХрдЧрдгрд┐рдд рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣реАрдВ рднреА рд╡рд┐рд╕реНрдлреЛрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред


рд╣рдо рдЯрд╛рдЗрдк numeric рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ


рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдЪрд╛рд▓ рд╣реИ, рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреМрддрд╛ рд╣реИ рдЬреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ int64 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рдЫрд┐рдкрд╛ рд╣реЛрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╕рднреА 64 рдмрд┐рдЯреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЕрдХреНрд╕рд░ рд╕рдВрдЦреНрдпрд╛ 2 ^ 64 рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИред


рдбрдмрд▓-рд╕рдЯреАрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рд╛рд░реВрдк рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рд╣реИред рд╡рд┐рд╡рд░рдг рд▓реЛрдХрдкреНрд░рд┐рдп рдбрдмрд▓-рд╕рдЯреАрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рд╛рд░реВрдк рдЖрд▓реЗрдЦ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


 The 53-bit significand precision gives from 15 to 17 significant decimal digits precision (2тИТ53 тЙИ 1.11 ├Ч 10тИТ16). If a decimal string with at most 15 significant digits is converted to IEEE 754 double-precision representation, and then converted back to a decimal string with the same number of digits, the final result should match the original string. If an IEEE 754 double-precision number is converted to a decimal string with at least 17 significant digits, and then converted back to double-precision representation, the final result must match the original number. 

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ 15 рдпрд╛ рдХрдо рджрд╢рдорд▓рд╡ рдЕрдВрдХ рд╣реИрдВ, рддреЛ рдЖрдк numeric рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред


рдЬрдм рдЖрдкрдХреЛ рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд╣реА рдЪрд╛рд▓ рдЕрдЪреНрдЫреА рд╣реЛрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╡рд╛рд▓реЗред рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЛ рдкрд╛рда рдкрд╛рд░реНрд╕рд░ -> POSIXct рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ POSIXct , рдЬреЛ рдХрд┐ рдЕрддреНрдпрдВрдд рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди (рдХрдИ рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ) рднреА рд╣реИред рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдПрдХ рддрдереНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдФрд░ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдпреВрдирд┐рдХреНрд╕ рдЬрд╝реЛрди рдореЗрдВ рдпреВрдирд┐рд╕ рдЬрд╝реЛрдирд╕реНрдЯреИрдореНрдк рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (13 рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рдиреЛрдВ) рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд╕рдЯреАрдХ рд╕рдордп рдХрд╛ рд╕рдВрдЪрд░рдг рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рджреЛрд╖рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ numeric рдкреНрд░рд╛рд░реВрдк рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЗрддрдирд╛ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ


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


 library(tidyverse) library(magrittr) library(stringi) library(gmp) library(profvis) library(pryr) library(rTRNG) set.seed(46572) RcppParallel::setThreadOptions(numThreads = parallel::detectCores() - 1) #              options(scipen = 10000) options(digits = 14) options(pillar.sigfig = 14) pryr::mem_used() fname <- here::here("output", "dump.csv") #  10^4,       (    +  ) m1 <- sample(stri_rand_strings(100, 64, "[a0-9]"), 10^7, replace = TRUE) #     readr::write_csv(enframe(m1, name = NULL), fname) #       m2 <- readr::read_csv(fname, col_types = "c") %>% pull(value) pryr::object_size(m2) pryr::mem_used() #      print(glue::glue("File size: {fs::file_size(fname)}. ", "Constructed from file object's (m2) size: {fs::fs_bytes(pryr::object_size(m2))}. ", "Pure pointer's size: {fs::fs_bytes(8*length(m2))}")) .Internal(inspect(m1)) .Internal(inspect(m2)) 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реА ++ рд╕реНрддрд░ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рд╕рдЪреНрдЪрд╛рдИ рд╕реЗ рдЗрддрдиреА рджреВрд░ рдирд╣реАрдВ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡реЗрдХреНрдЯрд░ рдХреА рдорд╛рддреНрд░рд╛ рд▓рдЧрднрдЧ 64-рдмрд┐рдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдЪрд░ рд╣реА рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдХрдо рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред


 File size: 62M. Constructed from file object's (m2) size: 7.65M. Pure pointer's size: 7.63M 

рдФрд░ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╡реИрдХреНрдЯрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рдорд╛рди рд╣реИ - рд╕рдореНрдорд╛рдиред рд╡реЗрдХреНрдЯрд░ рддрддреНрд╡ рдПрдХ рд╣реА рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред


рдЗрд╕рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЕрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред dplyr рдФрд░ data.table рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреНрд░реБрдкрд┐рдВрдЧ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рдорд░реНрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрдВрдЪрдорд╛рд░реНрдХ, numeric рдФрд░ character рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдорд╛рди рд░реАрдбрд┐рдВрдЧ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдкреВрд▓ рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрдХреВрд▓рди рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЖрд░ (32/64) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ 32 рдпрд╛ 64 рдмрд┐рдЯреНрд╕ рд╣реИ, рдФрд░ рдпрд╣ рдареАрдХ numeric рдкреНрд░рдХрд╛рд░ рд╣реИред


 #    gc() pryr::mem_used() bench::mark( string = id_df %>% group_by(id_string) %>% summarise(j = prod(j, na.rm = TRUE)), # bit64 = id_df %>% group_by(id_bit64) %>% summarise(j = prod(j, na.rm = TRUE)), numeric = id_df %>% group_by(id_numeric) %>% summarise(j = prod(j, na.rm = TRUE)), # gmp = id_df %>% group_by(id_gmp) %>% summarise(j = prod(j, na.rm = TRUE)), check = FALSE ) #    gc() pryr::mem_used() string_subset <- sample(unique(id_df$id_string), 20) numeric_subset <- sample(unique(id_df$id_numeric), 20) bench::mark( string = dplyr::filter(id_df, id_string %in% string_subset), numeric = dplyr::filter(id_df, id_numeric %in% numeric_subset), check = FALSE ) #    gc() pryr::mem_used() #        string_copy_df <- rlang::duplicate(dplyr::count(id_df, id_string)) numeric_copy_df <- rlang::duplicate(dplyr::count(id_df, id_numeric)) bench::mark( string = id_df %>% dplyr::left_join(string_copy_df, by = "id_string"), numeric = id_df %>% dplyr::left_join(numeric_copy_df, by = "id_numeric"), iterations = 10, check = FALSE ) 

рд╡реИрд╕реЗ, рдЙрдкрд▓рдмреНрдз R рдореЗрдореЛрд░реА рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ fs::fs_bytes(memory.limit()) рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ dplyr рд╣рдореЗрд╢рд╛ рддреЗрдЬ dplyr рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдорд╛рдорд▓реЗ рдХреЛ рджреЗрдЦреЗрдВ "рдПрдХ рдЪрд░рд┐рддреНрд░ рд╕реНрддрдВрдн рд╕реЗ рдЬреБрдбрд╝рдирд╛ рдзреАрдорд╛ рд╣реИ, рдПрдХ рдХрд╛рд░рдХ рд╕реНрддрдВрдн рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред # 1386 {рдмрдВрдж}" ред рдпрд╣ рдзрд╛рдЧрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдкреВрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред


рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рд╡рд┐рд╡рд░рдг


рдореВрд▓ рд╕реНрд░реЛрдд



рдирд┐рд╖реНрдХрд░реНрд╖


рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреНрд░рд╢реНрди рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд░реВрдк рдореЗрдВ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдИ рд▓рд┐рдВрдХред



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


рдкрд┐рдЫрд▓рд╛ рдкреНрд░рдХрд╛рд╢рди "рдпреВрдЯрд┐рд▓рд┐рдЯреА рдЯрд╛рд╕реНрдХ рдХреЗ рд▓рд┐рдП рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ" рд╣реИ ред

Source: https://habr.com/ru/post/hi466829/


All Articles