-
-
Notifications
You must be signed in to change notification settings - Fork 54
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
Redesign protocol instructions #3
Labels
Comments
changkun
added a commit
that referenced
this issue
Feb 2, 2019
This intend to give a benchmark comparison between Guacamole protocol and Occamy protocol design. name old time/op new time/op delta InstructionParser/occamy-0-6 325ns ± 2% 126ns ± 3% -61.16% (p=0.000 n=10+9) InstructionParser/occamy-1-6 54.3µs ± 1% 1.2µs ± 9% -97.73% (p=0.000 n=9+10) name old alloc/op new alloc/op delta InstructionParser/occamy-0-6 120B ± 0% 96B ± 0% -20.00% (p=0.000 n=10+10) InstructionParser/occamy-1-6 36.4kB ± 0% 8.3kB ± 0% -77.26% (p=0.000 n=10+10) name old allocs/op new allocs/op delta InstructionParser/occamy-0-6 7.00 ± 0% 3.00 ± 0% -57.14% (p=0.000 n=10+10) InstructionParser/occamy-1-6 23.0 ± 0% 3.0 ± 0% -86.96% (p=0.000 n=10+10) As we can see, eliminate the numbers of instruction length reduces the parsing cost significantly. See #3.
changkun
added a commit
that referenced
this issue
Feb 2, 2019
This intend to give a benchmark comparison between Guacamole protocol and Occamy protocol design. name old time/op new time/op delta InstructionParser/occamy-0-6 325ns ± 2% 126ns ± 3% -61.16% (p=0.000 n=10+9) InstructionParser/occamy-1-6 54.3µs ± 1% 1.2µs ± 9% -97.73% (p=0.000 n=9+10) name old alloc/op new alloc/op delta InstructionParser/occamy-0-6 120B ± 0% 96B ± 0% -20.00% (p=0.000 n=10+10) InstructionParser/occamy-1-6 36.4kB ± 0% 8.3kB ± 0% -77.26% (p=0.000 n=10+10) name old allocs/op new allocs/op delta InstructionParser/occamy-0-6 7.00 ± 0% 3.00 ± 0% -57.14% (p=0.000 n=10+10) InstructionParser/occamy-1-6 23.0 ± 0% 3.0 ± 0% -86.96% (p=0.000 n=10+10) As we can see, eliminate the numbers of instruction length reduces the parsing cost significantly. See #3.
changkun
added a commit
that referenced
this issue
Nov 21, 2019
This is because the connection is maintained by websocket, a keep alive thread is not necessary anymore. nop command can also be removed. Update #3
changkun
added a commit
that referenced
this issue
Dec 7, 2021
This is because the connection is maintained by websocket, a keep alive thread is not necessary anymore. nop command can also be removed. Update #3
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is your feature request related to a problem? Please describe.
The Guacamole protocol was designed for long connection over TCP.
sync
andnop
instructions intend to pause the connection without breakfast. Nevertheless, during the connection IO, tons ofsync
andnop
meaningless communication are made between client and server, which slows the server performance. Besides, Occamy involves WebSocket as a default option implicitly keep the connection alive. Therefore the only necessary instructions are control and renderer instructions.Describe the solution you'd like
We would like to propose removing all unnecessary instructions and only kept the control and renderer instructions. This proposal requires large reimplementation of
libguac
, it is unclearthat this level of refactoring involves how many of
cgo
calls, which may slow the server due to Go runtime. An investigation is required absolutely.The text was updated successfully, but these errors were encountered: