Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

when send 89M request body,it is cost 6 second? after user gzip,also #11130

Open
topherli opened this issue Apr 26, 2024 · 3 comments
Open

when send 89M request body,it is cost 6 second? after user gzip,also #11130

topherli opened this issue Apr 26, 2024 · 3 comments
Labels
question Waiting on reporter there was a request for more information without a response or answer or advice has been provided

Comments

@topherli
Copy link

topherli commented Apr 26, 2024

hello
i deploy a grpc client an a grpc server on the same linux pc
i send 89M req to server ,i find it very time-consuming,about 6~10 second
i guess it is network limit,so i use gzip,but is same problem
so i guess serialization cost so long time ,i print log below
image
image
image
image
i print log at onMessage serverintercepter,i think serialization is before onMessage
and generateobjnames is handle funtion
i find that during after onMessage and the handle funtion of generateobjnames is most cost time,why? i think it memory opration

please help me ?
thank you very mush

@larry-safran
Copy link
Contributor

Your log is showing that the time is being spent in some interceptor. The log message in generateObjNames happens at the beginning, so the time is spent before that. You have 3 1/2 seconds between Serialization time and when generateObjNames is called. The code snippet you included has only Deserialization time methods, so there must be some other part of your code where the serialization is happening and that seems to be where the time is spent.

@sergiitk sergiitk added the Waiting on reporter there was a request for more information without a response or answer or advice has been provided label May 2, 2024
@topherli
Copy link
Author

topherli commented May 6, 2024

Your log is showing that the time is being spent in some interceptor. The log message in generateObjNames happens at the beginning, so the time is spent before that. You have 3 1/2 seconds between Serialization time and when generateObjNames is called. The code snippet you included has only Deserialization time methods, so there must be some other part of your code where the serialization is happening and that seems to be where the time is spent.

thank you very much,this is server intercepter,i think that it only have Deserialization time(binary to proto objects),why has Serialization time? if has Serialization time,i think that grpc self done?

@topherli
Copy link
Author

topherli commented May 7, 2024

I wonder if this is a question about HTTP/2 frame transmission, with the request headers arriving first at the server interceptor, followed by the request body, and all the time spent on transferring the request body
Otherwise, I can't imagine deserialization taking so long, because it only takes a few hundred milliseconds for me to convert from a Java object to a Proto object.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Waiting on reporter there was a request for more information without a response or answer or advice has been provided
Projects
None yet
Development

No branches or pull requests

3 participants