Java default serialization with long class and field names2019 Community Moderator ElectionJava inner class and static nested classIs there a destructor for Java?How to access java-classes in the default-package?Fastest way to determine if an integer's square root is an integerWhy does Java have transient fields?Efficiency of Java “Double Brace Initialization”?Does Java support default parameter values?Static Classes In JavaWhat is the difference between canonical name, simple name and class name in Java Class?Why does Java allow us to compile a class with a name different than the file name?

What Happens when Passenger Refuses to Fly Boeing 737 Max?

Running a subshell from the middle of the current command

When were linguistics departments first established

How does Dispel Magic work against Stoneskin?

What injury would be of little consequence to a biped but terrible for a quadruped?

How to draw a 3Dbox around a Graph3D result

Want to switch to tankless, but can I use my existing wiring?

Can the druid cantrip Thorn Whip really defeat a water weird this easily?

"However" used in a conditional clause?

Question about partial fractions with irreducible quadratic factors

How could a female member of a species produce eggs unto death?

Why does Deadpool say "You're welcome, Canada," after shooting Ryan Reynolds in the end credits?

Is a lawful good "antagonist" effective?

Ban on all campaign finance?

What happens with multiple copies of Humility and Glorious Anthem on the battlefield?

What is the likely impact on flights of grounding an entire aircraft series?

When two POV characters meet

Is going from continuous data to categorical always wrong?

Who is our nearest neighbor

Playing ONE triplet (not three)

Is having access to past exams cheating and, if yes, could it be proven just by a good grade?

What exactly is the purpose of connection links straped between the rocket and the launch pad

Does anyone draw a parallel between Haman selling himself to Mordechai and Esav selling the birthright to Yaakov?

As a monk, can you make a melee attack roll using your Strength modifier, but roll damage with your Dexterity modifier?



Java default serialization with long class and field names



2019 Community Moderator ElectionJava inner class and static nested classIs there a destructor for Java?How to access java-classes in the default-package?Fastest way to determine if an integer's square root is an integerWhy does Java have transient fields?Efficiency of Java “Double Brace Initialization”?Does Java support default parameter values?Static Classes In JavaWhat is the difference between canonical name, simple name and class name in Java Class?Why does Java allow us to compile a class with a name different than the file name?










1















my question is, how does java serialisation work?
I'm serializing 100_000 objects of a class with a long class name and long field names.
And it takes much more time then with another class with short class/field names.
So does java serialization write the class and the field names with every object? Or maybe just the field names with every object?










share|improve this question




























    1















    my question is, how does java serialisation work?
    I'm serializing 100_000 objects of a class with a long class name and long field names.
    And it takes much more time then with another class with short class/field names.
    So does java serialization write the class and the field names with every object? Or maybe just the field names with every object?










    share|improve this question


























      1












      1








      1








      my question is, how does java serialisation work?
      I'm serializing 100_000 objects of a class with a long class name and long field names.
      And it takes much more time then with another class with short class/field names.
      So does java serialization write the class and the field names with every object? Or maybe just the field names with every object?










      share|improve this question
















      my question is, how does java serialisation work?
      I'm serializing 100_000 objects of a class with a long class name and long field names.
      And it takes much more time then with another class with short class/field names.
      So does java serialization write the class and the field names with every object? Or maybe just the field names with every object?







      java object serialization






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 7 at 14:21







      WoLFi

















      asked Mar 7 at 11:07









      WoLFiWoLFi

      204




      204






















          1 Answer
          1






          active

          oldest

          votes


















          2














          Java writes the class descriptor once for each class in the serialization stream. The class descriptor includes the class name, the field names, and the class names (or references to class names) of the field types.



          The class descriptor for an object is embedded in the object for the first object of that class in a stream. Subsequent objects of the same class only contain a reference to the class descriptor.



          Field names only appear in the class descriptor. The object's field values are represented as an array of values; no names.



          It is likely (though not obvious from the spec) that class and field names in class descriptors are de-duped.



          For more details, refer to the Object Serialization Stream Protocol specification.




          This means that long class and field names will make a serialization longer, but there should not be significant repetition of the names.




          It takes much more time then with another class with short class/field names.




          That is surprising if (as you seem to be saying) you are putting 100 objects of the same class into a stream.






          share|improve this answer























          • Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

            – WoLFi
            Mar 7 at 14:20







          • 1





            In fact, it should make less of a difference.

            – Stephen C
            Mar 7 at 14:21











          • I will try it again. Maybe there was something running in the background.

            – WoLFi
            Mar 7 at 14:23










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55042359%2fjava-default-serialization-with-long-class-and-field-names%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          Java writes the class descriptor once for each class in the serialization stream. The class descriptor includes the class name, the field names, and the class names (or references to class names) of the field types.



          The class descriptor for an object is embedded in the object for the first object of that class in a stream. Subsequent objects of the same class only contain a reference to the class descriptor.



          Field names only appear in the class descriptor. The object's field values are represented as an array of values; no names.



          It is likely (though not obvious from the spec) that class and field names in class descriptors are de-duped.



          For more details, refer to the Object Serialization Stream Protocol specification.




          This means that long class and field names will make a serialization longer, but there should not be significant repetition of the names.




          It takes much more time then with another class with short class/field names.




          That is surprising if (as you seem to be saying) you are putting 100 objects of the same class into a stream.






          share|improve this answer























          • Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

            – WoLFi
            Mar 7 at 14:20







          • 1





            In fact, it should make less of a difference.

            – Stephen C
            Mar 7 at 14:21











          • I will try it again. Maybe there was something running in the background.

            – WoLFi
            Mar 7 at 14:23















          2














          Java writes the class descriptor once for each class in the serialization stream. The class descriptor includes the class name, the field names, and the class names (or references to class names) of the field types.



          The class descriptor for an object is embedded in the object for the first object of that class in a stream. Subsequent objects of the same class only contain a reference to the class descriptor.



          Field names only appear in the class descriptor. The object's field values are represented as an array of values; no names.



          It is likely (though not obvious from the spec) that class and field names in class descriptors are de-duped.



          For more details, refer to the Object Serialization Stream Protocol specification.




          This means that long class and field names will make a serialization longer, but there should not be significant repetition of the names.




          It takes much more time then with another class with short class/field names.




          That is surprising if (as you seem to be saying) you are putting 100 objects of the same class into a stream.






          share|improve this answer























          • Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

            – WoLFi
            Mar 7 at 14:20







          • 1





            In fact, it should make less of a difference.

            – Stephen C
            Mar 7 at 14:21











          • I will try it again. Maybe there was something running in the background.

            – WoLFi
            Mar 7 at 14:23













          2












          2








          2







          Java writes the class descriptor once for each class in the serialization stream. The class descriptor includes the class name, the field names, and the class names (or references to class names) of the field types.



          The class descriptor for an object is embedded in the object for the first object of that class in a stream. Subsequent objects of the same class only contain a reference to the class descriptor.



          Field names only appear in the class descriptor. The object's field values are represented as an array of values; no names.



          It is likely (though not obvious from the spec) that class and field names in class descriptors are de-duped.



          For more details, refer to the Object Serialization Stream Protocol specification.




          This means that long class and field names will make a serialization longer, but there should not be significant repetition of the names.




          It takes much more time then with another class with short class/field names.




          That is surprising if (as you seem to be saying) you are putting 100 objects of the same class into a stream.






          share|improve this answer













          Java writes the class descriptor once for each class in the serialization stream. The class descriptor includes the class name, the field names, and the class names (or references to class names) of the field types.



          The class descriptor for an object is embedded in the object for the first object of that class in a stream. Subsequent objects of the same class only contain a reference to the class descriptor.



          Field names only appear in the class descriptor. The object's field values are represented as an array of values; no names.



          It is likely (though not obvious from the spec) that class and field names in class descriptors are de-duped.



          For more details, refer to the Object Serialization Stream Protocol specification.




          This means that long class and field names will make a serialization longer, but there should not be significant repetition of the names.




          It takes much more time then with another class with short class/field names.




          That is surprising if (as you seem to be saying) you are putting 100 objects of the same class into a stream.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 7 at 12:49









          Stephen CStephen C

          523k71582941




          523k71582941












          • Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

            – WoLFi
            Mar 7 at 14:20







          • 1





            In fact, it should make less of a difference.

            – Stephen C
            Mar 7 at 14:21











          • I will try it again. Maybe there was something running in the background.

            – WoLFi
            Mar 7 at 14:23

















          • Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

            – WoLFi
            Mar 7 at 14:20







          • 1





            In fact, it should make less of a difference.

            – Stephen C
            Mar 7 at 14:21











          • I will try it again. Maybe there was something running in the background.

            – WoLFi
            Mar 7 at 14:23
















          Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

          – WoLFi
          Mar 7 at 14:20






          Thank you. I forgot some zeros. I mean 100_000 Objects. But it still should not make such a difference with your explanation.

          – WoLFi
          Mar 7 at 14:20





          1




          1





          In fact, it should make less of a difference.

          – Stephen C
          Mar 7 at 14:21





          In fact, it should make less of a difference.

          – Stephen C
          Mar 7 at 14:21













          I will try it again. Maybe there was something running in the background.

          – WoLFi
          Mar 7 at 14:23





          I will try it again. Maybe there was something running in the background.

          – WoLFi
          Mar 7 at 14:23



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55042359%2fjava-default-serialization-with-long-class-and-field-names%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Identity Server 4 is not redirecting to Angular app after login2019 Community Moderator ElectionIdentity Server 4 and dockerIdentityserver implicit flow unauthorized_clientIdentityServer Hybrid Flow - Access Token is null after user successful loginIdentity Server to MVC client : Page Redirect After loginLogin with Steam OpenId(oidc-client-js)Identity Server 4+.NET Core 2.0 + IdentityIdentityServer4 post-login redirect not working in Edge browserCall to IdentityServer4 generates System.NullReferenceException: Object reference not set to an instance of an objectIdentityServer4 without HTTPS not workingHow to get Authorization code from identity server without login form

          2005 Ahvaz unrest Contents Background Causes Casualties Aftermath See also References Navigation menue"At Least 10 Are Killed by Bombs in Iran""Iran"Archived"Arab-Iranians in Iran to make April 15 'Day of Fury'"State of Mind, State of Order: Reactions to Ethnic Unrest in the Islamic Republic of Iran.10.1111/j.1754-9469.2008.00028.x"Iran hangs Arab separatists"Iran Overview from ArchivedConstitution of the Islamic Republic of Iran"Tehran puzzled by forged 'riots' letter""Iran and its minorities: Down in the second class""Iran: Handling Of Ahvaz Unrest Could End With Televised Confessions""Bombings Rock Iran Ahead of Election""Five die in Iran ethnic clashes""Iran: Need for restraint as anniversary of unrest in Khuzestan approaches"Archived"Iranian Sunni protesters killed in clashes with security forces"Archived

          Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme