diff options
author | Russ Cox <rsc@golang.org> | 2020-03-09 22:11:04 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2020-03-11 14:10:08 +0000 |
commit | 482079d678d84e207dd9ae63266c4bd4e653886b (patch) | |
tree | 62aa3b630bbe982904f5495fe2cc53d60a87c92d /content/qihoo.article | |
parent | 0b4fcd39865e575704b5928c9a8f1cd21e18e8b2 (diff) |
content: wrap long lines using new program wrap.go
Wrapping long lines will make diffs easier to read
for the eventual conversion to Markdown.
For golang/go#33955.
Change-Id: Ibcc1b5a84ccc9144b5fcdc9266f2da3e2cf3c5a3
Reviewed-on: https://go-review.googlesource.com/c/blog/+/222839
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'content/qihoo.article')
-rw-r--r-- | content/qihoo.article | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/content/qihoo.article b/content/qihoo.article index 57994da..ccd16bc 100644 --- a/content/qihoo.article +++ b/content/qihoo.article @@ -46,20 +46,33 @@ I had to make), and great headway was made soon enough. Here are a few tweaks we made and key take-aways: -- Replace short connections with persistent ones (using a connection pool), to reduce creation of buffers and objects during communication. +- Replace short connections with persistent ones (using a connection pool), + to reduce creation of buffers and objects during communication. - Use Objects and Memory pools appropriately, to reduce the load on the GC. .image qihoo/image00.png -- Use a Task Pool, a mechanism with a group of long-lived goroutines consuming global task or message queues sent by connection goroutines, to replace short-lived goroutines. +- Use a Task Pool, a mechanism with a group of long-lived goroutines consuming + global task or message queues sent by connection goroutines, + to replace short-lived goroutines. -- Monitor and control goroutine numbers in the program. The lack of control can cause unbearable burden on the GC, imposed by surges in goroutines due to uninhibited acceptance of external requests, as RPC invocations sent to inner servers may block goroutines recently created. +- Monitor and control goroutine numbers in the program. + The lack of control can cause unbearable burden on the GC, + imposed by surges in goroutines due to uninhibited acceptance of external requests, + as RPC invocations sent to inner servers may block goroutines recently created. -- Remember to add [[https://golang.org/pkg/net/#Conn][read and write deadlines]] to connections when under a mobile network; otherwise, it may lead to goroutine blockage. Apply it properly and with caution when under a LAN network, otherwise your RPC communication efficiency will be hurt. +- Remember to add [[https://golang.org/pkg/net/#Conn][read and write deadlines]] + to connections when under a mobile network; + otherwise, it may lead to goroutine blockage. + Apply it properly and with caution when under a LAN network, + otherwise your RPC communication efficiency will be hurt. - Use Pipeline (under Full Duplex feature of TCP) to enhance the communication efficiency of RPC framework. -As a result, we successfully launched three iterations of our architecture, and two iterations of our RPC framework even with limited human resources. This can all attributed to the development convenience of Go. Below you can find the up-to-date system architecture: +As a result, we successfully launched three iterations of our architecture, +and two iterations of our RPC framework even with limited human resources. +This can all attributed to the development convenience of Go. +Below you can find the up-to-date system architecture: .image qihoo/image01.png |