You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
I think the CompatibleFieldSerializer use OutputChunked to warp the output project may cause nesting flush problem, it will cost lots of cpu usage.
For example:
If I have an object A, and A contains an object B, and B contains an object C.
These three objects all use the CompatibleFieldSerializer, because we can't avoid dependent micro-services modify these objects.
In the end, if the object c starts flushing, then the order of execution is as follow: flush to the buffer array of C -> flush to the buffer array of B -> flush to the buffer array of A -> flush to the java io
Why we can't flush to the buffer array of C -> flush to the java io directly?
Proved by our performance test,the long flush chain costs lots of cpu usage.
The following screenshot is our jmc analysis:
Is there any way to avoid this problem? Thank you!
The text was updated successfully, but these errors were encountered:
Describe the bug
I think the CompatibleFieldSerializer use OutputChunked to warp the output project may cause nesting flush problem, it will cost lots of cpu usage.
For example:
If I have an object A, and A contains an object B, and B contains an object C.
These three objects all use the CompatibleFieldSerializer, because we can't avoid dependent micro-services modify these objects.
In the end, if the object c starts flushing, then the order of execution is as follow: flush to the buffer array of C -> flush to the buffer array of B -> flush to the buffer array of A -> flush to the java io
Why we can't flush to the buffer array of C -> flush to the java io directly?
Proved by our performance test,the long flush chain costs lots of cpu usage.
The following screenshot is our jmc analysis:
Is there any way to avoid this problem? Thank you!
The text was updated successfully, but these errors were encountered: