Summary:
The serialization algo was slow. The problem was that it used to just go to the first child which was not serializable and went back to the parent which then looked for first child from the remaining children and serialized it, and this happened at all levels. Instead, currently, the child fills the stack up with the children which needs to be serialized, so there is no back and forth for each child. This improved the speed a lot.
Test case: Serializing ~10000 rows of logs
Previous Iterative algo: 33215.3 ms
Iterative Algo with the above change: 2051.1 ms
Recursive Algo: ~1000 ms
New Algo Video:
{F164050963}
Prev Algo: Too Slow
{F164051027}
{F164051085}
Recursive Speed:
{F164051982}
Reviewed By: jknoxville
Differential Revision: D16037998
fbshipit-source-id: 70fae9a0073ff28d1a6528ec0dbddceb213b2c5f