Stack Overflow is well known as the go-to Q&A resource among both professional and aspiring programmers. Launched in 2008, it's now in 5 languages with Chinese somewhat absent (though possibly in development?). Given the sheer size of the Chinese coding community, we ask ourselves - Why isn't Stack Overflow in China? The site isn't blocked, are there other reasons - perhaps, performance?
China bolts onto almost any website, and for tech companies, while it may be a little bit more involved, Chinafy just 'works'.
In this Case Study, we applied a single-pass of Chinafy to www.stackoverflow.com, effectively duplicating it, and modifying it to be tested within a Chinese environment.
First, some data:
Launched: September 2008
Monthly Visitors: 50 million
% of Visitors from China: 1.14% (although SimilarWeb says 10%)
% of Visitors from India: 13.31% (as a proxy for how big China 'could' be)
Site: www.stackoverflow.com
Secondly, a quick note on transparency:
Chinafy does not currently work with Stack Overflow (although we're browsing the site daily). We have taken their landing page, applied one pass of our compatibility intelligence, and subsequently performed a series of performance upgrades. This case study is not necessarily endorsed by Stack Overflow, or by Stack Exchange.
This study will be broken down into two parts: i) General Overview, and ii) Technical Overview catering to two different audiences.
As a knowledge platform, Stack Overflow has a variety of features, and functions. For the majority of users, they Search, Browse, and contribute Votes. For others, they Ask Questions, hunt for jobs. and more.
StackOverflow.com is a pretty small site resource-wise. Unlike a number of other sites we come across with dozens, or hundreds of 3rd party plugins of all sorts, StackOverflow has 30-50 depending on the size and type of page.
Here's a typical video recording a sequence of screenshots taken in Beijing. In this particular case, the Chinafied version loads in about 2 seconds, vs the Original version at about the 14 second mark.
The problem looking at one video, is that it doesn't represent the broad spectrum of loading times. For this test, we loaded the Original page, and our Chinafied page 120 times over a period of 6 hours. The results were astounding.
The metric we use is the 'Average Time to Load First 25 Resources'. The Chinafied page typically loads more resources than the Original page, and so taking a full-page load doesn't make sense - nor does simply looking at the 'Time to Load First 25 Resources' as the first resource may take equally as long as the last resource.
On average, the Original page was about 3.7x slower than the Original page with a difference of 6.6 secs vs 1.8 secs respectively. Again - as we're looking at average time, what was normally the case was that the Original site was somewhat fully rendered in 12-13 seconds, with the Chinafied site fully rendered in 3.5-4.0 seconds.
A histogram gives more transparency into how the page loads and as we illustrate above, you can approximate the time to fully render the page as roughly 2-2.5x these times below.
Upon drafting this Case Study, one of our colleagues pointed out that "why did you Chinafy the home page, and not a typical Question page?" A valid point - unlike a Hotel, or University, StackOverflow's most browsed pages (by format) are the Q&A pages, and so we cheekily looked at Chinafying this page:
https://stackoverflow.com/questions/23780387/recaptcha-availability-in-china
FYI - Chinafy fixes these types of issues :)
So we try loading the pages from Shanghai, but this time the results are even more compelling:
Looking back now at the original challenge, that is, the Home Page vs our Chinafied Home page, let's break it down a bit further with one instance:
Considering the two pages, Chinafy was able to load 42 resources vs 39 on the Original page. Not only this, but the Mean Resource Load time was 7.4x faster than the Original site. Given the Median was only slightly faster, this indicates that the last 15 or so resources must have loaded exceedingly slowly vis-a-vis the first 15-20 resources.
Next, we look at the Average Time for X Resources, which we had defined earlier.
We then look at the Waterfall split into 25 resource cohorts where the candlestick lines for each time bucket (e.g. 0-25) are divided into sub-buckets of 0-25% (the line), 25-75% (the bar), and 75-100% (the line) for that cohort.
Chinafy is incredibly fast at scanning, and optimising sites for China. If you're looking to increase revenue, improve both predictability and reliability, reach out to us. While our technology is largely automated, we do like to see if there are any additional manual optimisations that may be appropriate. We typically can have you up and running within a day, even if you're Stack Overflow.