aboutsummaryrefslogtreecommitdiff
path: root/content/qihoo.article
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2020-03-09 23:54:35 -0400
committerRuss Cox <rsc@golang.org>2020-03-17 20:58:37 +0000
commitaf5018f64e406aaa646dae066f28de57321ea5ce (patch)
tree8db7b1f049d83d215fa9abf68851efce7b5ccadb /content/qihoo.article
parent86e424fac66fa90ddcb7e8d7febd4c2b07d7c59e (diff)
content: convert to Markdown-enabled present inputs
Converted blog to Markdown-enabled present (CL 222846) using present2md (CL 222847). For golang/go#33955. Change-Id: Ib39fa1ddd9a46f9c7a62a2ca7b96e117635553e8 Reviewed-on: https://go-review.googlesource.com/c/blog/+/222848 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
Diffstat (limited to 'content/qihoo.article')
-rw-r--r--content/qihoo.article43
1 files changed, 22 insertions, 21 deletions
diff --git a/content/qihoo.article b/content/qihoo.article
index 7f90ed8..7ac2ebc 100644
--- a/content/qihoo.article
+++ b/content/qihoo.article
@@ -1,13 +1,14 @@
-Qihoo 360 and Go
+# Qihoo 360 and Go
6 Jul 2015
+Summary: _This guest blog post was written by Yang Zhou, Software Engineer at Qihoo 360._
Yang Zhou
-* Introduction
+##
-_This_guest_blog_post_was_written_by_Yang_Zhou,_Software_Engineer_at_Qihoo_360._
+_This guest blog post was written by Yang Zhou, Software Engineer at Qihoo 360._
-[[http://www.360safe.com/][Qihoo 360]] is a major provider of Internet and
+[Qihoo 360](http://www.360safe.com/) is a major provider of Internet and
mobile security products and services in China, and operates a major
Android-based mobile distribution platform. At the end of June 2014, Qihoo had
about 500 million monthly active PC Internet users and over 640 million mobile
@@ -46,28 +47,28 @@ 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.
-- Use Objects and Memory pools appropriately, to reduce the load on the GC.
+ - 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 [read and write deadlines](https://golang.org/pkg/net/#Conn)
+ 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.
+ - 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.
@@ -103,7 +104,7 @@ relieved from heavy development work. I guess our experience may also grow
obsolete one day, as Go continues to evolve.
This is why I want to conclude my sharing by extending my sincere appreciation
-to the opportunity to attend [[http://gopherchina.org/][Gopher China]].
+to the opportunity to attend [Gopher China](http://gopherchina.org/).
It was a gala for us to learn, to share and for offering a window showcasing
Go’s popularity and prosperity in China. Many other teams within Qihoo have
already either got to know Go, or tried to use Go.