рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди: рдПрдХ рдХрдареЛрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХрддрдо рдЧрддрд┐

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

KDPV

рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ


рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдЕрдиреНрдп рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ ред
1рдЬрд╛рд╡рд╛ рдорд╛рдирдХJava- ┬л ┬╗,  Java- .
2Jackson JSON FasterXML/jackson-databind, Java- JSON-.
3Jackson JSON (with types), , , full qualified Java-. JSON- (, ) .
, JSON...
[
  "ru.sbrf.ufs.dto.PersonDto",
  {
    "firstName":"Ivan",
    "lastName":"Ivanov"
  }
]
...
:
public ObjectMapper createMapper() {
    return new ObjectMapper();
}
:
public ObjectMapper createMapper() {
    return new ObjectMapper()
            .enable(
                    ACCEPT_SINGLE_VALUE_AS_ARRAY,
                    ACCEPT_EMPTY_STRING_AS_NULL_OBJECT,
                    ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT,
                    READ_UNKNOWN_ENUM_VALUES_AS_NULL,
                    UNWRAP_SINGLE_VALUE_ARRAYS
            )
            .disable(
                    FAIL_ON_INVALID_SUBTYPE,
                    FAIL_ON_NULL_FOR_PRIMITIVES,
                    FAIL_ON_IGNORED_PROPERTIES,
                    FAIL_ON_UNKNOWN_PROPERTIES,
                    FAIL_ON_NUMBERS_FOR_ENUMS,
                    FAIL_ON_UNRESOLVED_OBJECT_IDS,
                    WRAP_EXCEPTIONS
            )
            .enable(ALLOW_SINGLE_QUOTES)
            .disable(FAIL_ON_EMPTY_BEANS)
            .enable(MapperFeature.PROPAGATE_TRANSIENT_MARKER)
            .setVisibility(FIELD, ANY)
            .setVisibility(ALL, NONE)
            .enableDefaultTyping(NON_FINAL);  // !
}
4Jackson Smile FasterXML/jackson-dataformats-binary/smile, Jackson-, Java- JSON- тАУ Smile.
5Jackson Smile (with types), , ┬лJackson JSON (with types)┬╗ (full qualified Java- ).
6Bson4Jackson michel-kraemer/bson4jackson, Jackson-, Java- JSON- тАУ BSON.
7Bson4Jackson (with types), , ┬лJackson JSON (with types)┬╗ (full qualified Java- ).
8BSON MongoDb mongodb/mongo-java-driver/bson,   Java- BSON-.
9Kryo EsotericSoftware/kryo,  Java- .
10Kryo (unsafe), , sun.misc.Unsafe /.
...
:
com.esotericsoftware.kryo.io.Input
com.esotericsoftware.kryo.io.Output
:
com.esotericsoftware.kryo.io.UnsafeInput
com.esotericsoftware.kryo.io.UnsafeOutput
11FSTRiedigerMoeller / fast-serialization рдкреБрд╕реНрддрдХрд╛рд▓рдп  рдЬреЛ рдЬрд╛рд╡рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрдкрдиреЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
12FST (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд)рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд▓реЗрдХрд┐рди рдХреНрд░рдордмрджреНрдзрддрд╛ / deserialization рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП sun.misc.Unsafe рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ ...
:
FSTConfiguration fst = FSTConfiguration.createDefaultConfiguration();
:
FSTConfiguration fst = FSTConfiguration.createUnsafeBinaryConfiguration();
рддреЗрд░рд╣рдПрдХ nioрдУрдбрдиреЛрдХреНрд▓рд╛рд╕реНрдирд┐рдХреА / рдПрдХ-рдПрдирдЖрдИрдУ рдкреБрд╕реНрддрдХрд╛рд▓рдп  рдЬреЛ рдЬрд╛рд╡рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрдкрдиреЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
14рд╡рди рдПрдирдЖрдИрдУ (рджреГрдврд╝рддрд╛ рдХреЗ рд▓рд┐рдП)рдКрдкрд░ рдЬреИрд╕рд╛ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХреЗред byte[]рдбрд┐рд╕реИрд░рд┐рдЬрд╝реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рднрдВрдбрд╛рд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ) рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреА рдорд╛рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ ред рдпрд╣реА рд╣реИ, рд▓рдХреНрд╖реНрдп рдХрд╛ рдкреАрдЫрд╛ рдЬреИрдХреНрд╕рди JSON (рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде) рдХреЗ рд░реВрдк рдореЗрдВ рд╣реА рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ ...
:
byte[] bufWithoutSerializers = new byte[bufferSize];
SerializeStream out = new SerializeStream( bufWithoutSerializers );
out.writeObject(object);
// bufWithoutSerializers is the result
:
byte[] bufWithSerializers = new byte[bufferSize];
PersistStream out = new PersistStream( bufWithSerializers );
out.writeObject(object);
bufWithSerializers = out.toByteArray();
// bufWithSerializers is the result

object- result  -:
1) full qualified object,
2) ,
3) full qualified ,
4) .
- , One Nio , .
рдпреЗ рд░рд╣рд╛!

рджреМрдбрд╝


рдЧрддрд┐ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдорд╛рдирджрдВрдб рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЗрдВрдкреНрд░реЛрдореЗрдкреНрдЯреВ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред рдХреНрд░рдордмрджреНрдз рд░реВрдк рд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрд░рдордмрджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рддреЗрдЬреА рд╕реЗ рд╣реИ, рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓реЙрдЧ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд▓рд┐рдпрд╛ рдФрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд▓рдВрдмрд╛рдИ рдХрд╛ рдбреЗрдЯрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдВрдмрд╛рдИ рд╕реЗ рдмрдирд╛рдпрд╛ : 0 рд╕реЗ 1 рдПрдордмреАред рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпрд╛рдБ рдерд╛ред
рдиреЛрдЯ: рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд┐рдЬреЗрддрд╛ рдФрд░ рд╣рд╛рд░реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 0 рд╕реЗ 10 рдХреЗрдмреА рд╕реЗ рдХреНрд░рдорд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ 1 рдПрдордмреА рдХреА рд╡реГрджреНрдзрд┐ рдиреЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ред
рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдмреЗрд╣рддрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреНрд░рд╛рдлрд╝ 10 KB рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред
, :
IntelR CoreTM i7-6700 CPU, 3.4GHz, 8 cores
16 GB
Microsoft Windows 10 (64-bit)
JREIBM J9 VM 1.7.0
: , IBM JRE One Nio ( 13 14). sun.reflect.MagicAccessorImpl private final ( ) , . , IBM JRE  sun.reflect.MagicAccessorImpl, , runtime .

(, Serialization-FAQ, One Nio ), fork ,  sun.reflect.MagicAccessorImpl  .  sun.reflect.MagicAccessorImpl  fork- sun.misc.Unsafe .
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЖрдИрдмреАрдПрдо рдЬреЗрдЖрд░рдИ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ 30-40% рддреЗрдЬреА рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред

рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рд╡рди рдиреАрдпреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕рднреА рдкрд░рд┐рдгрд╛рдо рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ, рди рдХрд┐ рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ред
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди / рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдкреАрдб рдХрд╛ рд╕реАрдзрд╛ рдорд╛рдк рдЬрд╛рд╡рд╛ рдорд╛рдЗрдХреНрд░реЛрдмреЗрдирдорд╛рд░реНрдХ рд╣рд╛рд░реНрдиреЗрд╕ (рдЬреЗрдПрдордПрдЪ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдмреЗрдВрдЪрдорд╛рд░реНрдХ-рдПрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрдирдЬреЗрдбрдХреЗ рд╕реЗ рдПрдХ рдЙрдкрдХрд░рдгред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдк рдХреЗ рд▓рд┐рдП (рдЧреНрд░рд╛рдл рдкрд░ рдПрдХ рдмрд┐рдВрджреБ), 5 рд╕реЗрдХрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЗрд╡реАрдПрдо рдХреЛ "рд╡рд╛рд░реНрдо рдЕрдк" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдПрдХ рдФрд░ 5 рд╕реЗрдХрдВрдб рдХреЗ рд╕рдордп рдХреЗ рдорд╛рдк рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ, рдФрд╕рддрдиред
рдпреБрдкреАрдбреА:
рдХреБрдЫ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ JMH рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЛрдб
public class SerializationPerformanceBenchmark {

    @State( Scope.Benchmark )
    public static class Parameters {

        @Param( {
            "Java standard",
            "Jackson default",
            "Jackson system",
            "JacksonSmile default",
            "JacksonSmile system",
            "Bson4Jackson default",
            "Bson4Jackson system",
            "Bson MongoDb",
            "Kryo default",
            "Kryo unsafe",
            "FST default",
            "FST unsafe",
            "One-Nio default",
            "One-Nio for persist"
        } )
        public String serializer;
        public Serializer serializerInstance;

        @Param( { "0", "100", "200", "300", /*... */ "1000000" } )  // Toward 1 MB
        public int sizeOfDto;
        public Object dtoInstance;
        public byte[] serializedDto;

        @Setup( Level.Trial )
        public void setup() throws IOException {
            serializerInstance = Serializers.getMap().get( serializer );
            dtoInstance = DtoFactory.createWorkflowDto( sizeOfDto );
            serializedDto = serializerInstance.serialize( dtoInstance );
        }

        @TearDown( Level.Trial )
        public void tearDown() {
            serializerInstance = null;
            dtoInstance = null;
            serializedDto = null;
        }
    }

    @Benchmark
    public byte[] serialization( Parameters parameters ) throws IOException {
        return parameters.serializerInstance.serialize(
                parameters.dtoInstance );
    }

    @Benchmark
    public Object unserialization( Parameters parameters ) throws IOException, ClassNotFoundException {
        return parameters.serializerInstance.deserialize(
                parameters.serializedDto,
                parameters.dtoInstance.getClass() );
    }
}

рдпрд╣рд╛рдВ рдРрд╕рд╛ рд╣реБрдЖ рд╣реИ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд░рдордмрджреНрдзрддрд╛ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд▓реНрдк рд╕рдорд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдореЗ рд╣реИрдВ ("рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде" рдФрд░ "рджреГрдврд╝рддрд╛ рдХреЗ рд▓рд┐рдП" рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЗрдЦреЗрдВ)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЬреИрдХреНрд╕рди рдЬреЗрдиреНрд╕рди рдФрд░ Bson4Jackson, рдЬреЛ рджреМрдбрд╝ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рд╣рд░реА рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд╛рд╡рд╛ рдорд╛рдирдХ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреМрдбрд╝ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреИрд╕рд╛ рдХрд┐ рдХреНрд░рдорд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП, deserialization рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИред рд╢реЗрд╖ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдлрдПрд╕рдЯреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рднрд░реЗ рдиреЗрддрд╛рдУрдВ рдореЗрдВ рд╣реИ

рд░реЗрд╕рд┐рдВрдЧ - рд╕рднреА рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ







рд░реЗрд╕рд┐рдВрдЧ - рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░

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

AND рдкрд░ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдХреНрд░рдордмрджреНрдзрддрд╛ рдФрд░ рд╡рд┐рдЪрд▓рди рдХреЗ рдХреБрд▓ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦреЗрдВ: рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рджреЛ рдЕрд╕рдорд╛рди рдиреЗрддрд╛ рд╣реИрдВ: FST (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд) рдФрд░ рдПрдХ Nio ред рдпрджрд┐ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ FST (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд)

рд░реЗрд╕рд┐рдВрдЧ - рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ (рд╕рдордЧреНрд░ рд╡рд░реНрдЧреАрдХрд░рдг)


 рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ, рдлрд┐рд░ рдХреНрд░рдордмрджреНрдз рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд╡рд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ, рд╡рди рд╡рд╛рдпреЛ рд╕реЗ рдиреАрдЪ ред рдЕрдиреБрдХреНрд░рдорд┐рдХ

рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рддреАрд╕рд░реА рд╕реНрдерд┐рддрд┐ рд╡рд┐рд╢реНрд╡рд╛рд╕рдкреВрд░реНрд╡рдХ рдмреАрдПрд╕рдУрдПрди рдореЛрдВрдЧрдбреЙрдм рджреНрд╡рд╛рд░рд╛ рд▓реА рдЧрдИ рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдиреЗрддрд╛рдУрдВ рд╕реЗ рд▓рдЧрднрдЧ рджреЛ рдЧреБрдирд╛ рдЖрдЧреЗ рд╣реИред

рд╡рдЬрди


рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдХрд╛рд░ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирджрдВрдб рд╣реИред рдПрдХ рддрд░рд╣ рд╕реЗ, рдХреНрд░рдорд╛рдВрдХрди / deserialization рдХреА рдЧрддрд┐ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ: рдПрдХ рдорд╛рддреНрд░рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдкрд░рд┐рдгрд╛рдо рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рддреЗрдЬрд╝ рд╣реИред рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ "рд╡реЗрдЯ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╕рдорд╛рди рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ (рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпреЛрдВ) рд╕реЗ рд▓рд┐рдП рдЧрдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╕реЗ рдмрдирддрд╛ рд╣реИред

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

"рддреМрд▓" рдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдереЗ:

рд╡рдЬрди

рдпрд╣ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдХреЙрдореНрдкреИрдХреНрдЯ рдкрд░рд┐рдгрд╛рдо рджреМрдбрд╝ рдХреЗ рдиреЗрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдХреНрд░рдорд╛рдВрдХрди рдереЗ: рд╡рди рдПрдирдЖрдИрдУ ред
рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдореЗрдВ рджреВрд╕рд░рд╛ рд╕реНрдерд╛рди BSON MongoDb рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛  (рдЬрд┐рд╕рдиреЗ рджреМрдбрд╝ рдореЗрдВ рддреАрд╕рд░рд╛ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛)ред
рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреАрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░, рдХреНрд░рд┐рдпреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп "рдмрдЪ" рдЧрдпрд╛ , рдЬреЛ рдкрд╣рд▓реЗ рджреМрдбрд╝ рдореЗрдВ рдЦреБрдж рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдерд╛ред

"рд╡реЗрдЯрд┐рдВрдЧ" рдХреЗ рдЗрди 3 рдиреЗрддрд╛рдУрдВ рдХреЗ рдХреНрд░рдорд┐рдХ рдкрд░рд┐рдгрд╛рдо рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХреБрдЪрд┐рдд (рд▓рдЧрднрдЧ рджреЛ) рд╣реИрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдирд┐рдХрд▓рд╛: JSON рдХрд╛ рдмрд╛рдЗрдирд░реА рд╕рдорддреБрд▓реНрдп рд╣реИ рд╕реНрдорд╛рдЗрд▓ рдФрд░ JSONред

рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рддрдереНрдп - рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рджреМрд░рд╛рди "рд╡реЗрдЯрд┐рдВрдЧ" рдХреЗ рд╕рднреА рд╡рд┐рдЬреЗрддрд╛рдУрдВ рдХреЛ рдЫреЛрдЯреЗ рдФрд░ рдмрдбрд╝реЗ рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рдорд┐рд▓рддреА рд╣реИред

рд▓рдЪреАрд▓рд╛рдкрди


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

рд▓рдЪреАрд▓рд╛рдкрди
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдлреБрдЯрдиреЛрдЯреНрд╕
1    LinkedHashMap.
2    тАФ , тАФ .
3    тАФ , тАФ .
4    sun.reflect.MagicAccessorImpl тАФ : boxing/unboxing, BigInteger/BigDecimal/String. MagicAccessorImpl ( ' fork One Nio) тАФ .
5    ArrayList.
6    ArrayList HashSet .
7    HashMap.
8    тАФ , , /Map-, ( HashMap).
9    -.
10  One Nio тАФ , ' fork- тАФ .
11 .
UPD: 13 рд╡реАрдВ рдХрд╕реМрдЯреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ Nio (рджреГрдврд╝рддрд╛ рдХреЗ рд▓рд┐рдП) рдХреЛ рдПрдХ рдФрд░ рдмрд┐рдВрджреБ (19 рд╡рд╛рдВ) рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред

рдпрд╣ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ "рдЖрд╡реЗрджрдХреЛрдВ рдХреА рдкрд░реАрдХреНрд╖рд╛" рд╢рд╛рдпрдж рд╣рдорд╛рд░реЗ "рдХрд╛рд╕реНрдЯрд┐рдВрдЧ" рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдЪрд░рдг рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпреЗ рддреБрд▓рдирд╛ рдкрд░рд┐рдгрд╛рдо рдХреНрд░рдордмрджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдк рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЬрдм рд╣рдордиреЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдПрдХ рдПрдирдЖрдИрдУ (рджреГрдврд╝рддрд╛ рдХреЗ рд▓рд┐рдП) рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА(*)ред рдбреАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рди рдПрдирдЖрдИрдУ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдареАрдХ рд╕реЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд╕рдордп рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╡рд╕реНрддреБ рдХреА рдХрдХреНрд╖рд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рдереАред рдпрд╣ рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реИ рдХрд┐ рд╡рди рдПрдирдЖрдИрдУ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрддрдирд╛ рд▓рдЪреАрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдзрд┐рдХрддрдо рд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ byte[]ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореЗрдЯрд╛-рд╕реВрдЪрдирд╛ (*) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,  byte[] рдЬрд┐рд╕ рдкрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдбреАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде ...
//  тДЦ1:  -   SomeDto
one.nio.serial.Serializer<SomeDto> dtoSerializerWithMeta = Repository.get( SomeDto.class );
byte[] dtoMeta = serializeByDefaultOneNioAlgorithm( dtoSerializerWithMeta );
//  тДЦ1:  dtoMeta  тДЦ2

//  тДЦ2:  -    SomeDto      One Nio
one.nio.serial.Serializer<SomeDto> dtoSerializerWithMeta = deserializeByOneNio( dtoMeta );
Repository.provideSerializer( dtoSerializerWithMeta );

//  тДЦ1:    SomeDto
byte[] bytes1 = serializeByDefaultOneNioAlgorithm( object1 );
byte[] bytes2 = serializeByDefaultOneNioAlgorithm( object2 );
...
//  тДЦ1:    тДЦ2

//  тДЦ2:      SomeDto
SomeDto object1 = deserializeByOneNio( bytes1 );
SomeDto object2 = deserializeByOneNio( bytes2 );
...

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрдиреБрдХреНрд░рдорд┐рдд рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЬрд╛рд╡рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрд╣ рд╣рдордиреЗ рдЗрд╕ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ рд╣реИ) рд▓рдЪреАрд▓рд╛рдкрди рдореЗрдВ рдПрдХ Nio рд╡рд┐рдЬреЗрддрд╛  (19/20) рдерд╛ред
рдЬрд╛рд╡рд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд░реНрд╕ рдореЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд░реЗрд╕рд┐рдВрдЧ рдФрд░ рд╡реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЦреБрдж рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд░рддреЗ рдереЗ, рдЦрд░рд╛рдм рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ:

  • BSON MongoDb  (14.5 / 20),
  • рдХреНрд░рд┐рдпреЛ (13/20)ред

рдХреБрд░рд╕реА


рдкрд┐рдЫрд▓реЗ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ:

  • рджреМрдбрд╝ рдореЗрдВ, рд░реЗрдЯрд┐рдВрдЧ рдХреА рдкрд╣рд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ FST (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд) рдФрд░ рдПрдХ Nio рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдФрд░ BSON MongoDb рдиреЗ рддреАрд╕рд░рд╛ рд╕реНрдерд╛рди рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ ,
  • рдПрдХ рдПрдирдЖрдИрдУ рдиреЗ рд╡реЗрдЯ -рдЗрди рдХреЛ рд╣рд░рд╛рдпрд╛ , рдЙрд╕рдХреЗ рдмрд╛рдж рдмреАрдПрд╕рдУрдПрди рдореЛрдВрдЧрдбреЙрдм рдФрд░ рдХреНрд░рд┐рдпреЛ ,
  • рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рддреНрд░ рд╕рдВрджрд░реНрдн рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╡рди Nio рдлрд┐рд░ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЧрдпрд╛  , рдФрд░ BSON MongoDb рдФрд░ Kryo рдиреЗ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ ред

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

  1. рд╡рди Nio
    рдореБрдЦреНрдп рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ - рджреМрдбрд╝ - FST (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд) рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ , рд▓реЗрдХрд┐рди рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рд╡рдЬрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рддреМрд▓рд╛ред
  2. FST (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд)
    рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдмрд╣реБрдд рддреЗрдЬ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХреНрд░рдорд╛рдВрдХрди рд╕реЗ рдЙрддреНрдкрдиреНрди рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдФрд░ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред
  3. BSON MongoDB + Kryo
    2 3- Java-, . 2- , . Collection Map, BSON MongoDB custom- / (Externalizable ..).

Sberbank рдореЗрдВ, рд╣рдорд╛рд░реА рд╕рддреНрд░ рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рдореЗрдВ, рд╣рдордиреЗ One Nio рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ , рдЬрд┐рд╕рдиреЗ рд╣рдорд╛рд░реА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬрд╛рд╡рд╛ рд╕рддреНрд░ рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рддреНрд░ рдкрд░рд┐рд╡рд╣рди рдХреА рдЧрддрд┐ рдХрдИ рдмрд╛рд░ рддреЗрдЬ рд╣реБрдИ рд╣реИред рд▓реЛрдб рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ Sberbank Online рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд░реАрдм рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреЗ рдХрд╛рд░рдг 40% рддрдХ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдореЗрдВ рдХрдореА, рдЬрд┐рд╕рд╕реЗ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕рдВрддреБрд╖реНрдЯрд┐ рдХреА рдбрд┐рдЧреНрд░реА рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдХ Nio рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рддреНрд╡рд░рдг рдХреЛ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд sun.reflect.MagicAccessorImplред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдИрдмреАрдПрдо рдЬреЗрдЖрд░рдИ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЬреЗрдЖрд░рдИ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рди рдПрдирдЖрдИрдУ рдХреА рдкреВрд░реНрдг рдХреНрд╖рдорддрд╛ рдЕрднреА рддрдХ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рдЖрдИ рд╣реИред рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИред

All Articles