Linux Profiling at Netflix
slideshare.net
slideshare.net
Sure we need to see various personalised lists when first connecting, but no activity while actually watching things. The personalisation seems very light - eg their lists of comedies look like they show the same to everyone. And it doesn't seem intelligent at all, like for example hiding items you have already seen. https://news.ycombinator.com/item?id=9083196
The recommendations don't show any evidence of being calculated frequently, nor do they have to be done in real time. There is certainly way less appearing to go on than a site like Reddit.
"There is a lot of processing going on in the background" doesn't really answer the question :-)
My point was that to assume the user-visible portion of the site accounts for most of their computing needs is probably incorrect. Video encoding was just one of the first things I thought of, and I bet there are many more.
I admit "processing going on in the background" was a real hand-wavey way to phrase it, but I think you know what I mean. It's an iceberg - there's a lot happening under the surface. :-)
Honestly I wouldn't mind if man pages came with ascii art to visualize this type of documentation.
If you do any performance analysis of software, learn perf.
Official manual: https://perf.wiki.kernel.org/index.php/Main_Page
Brendan Gregg's perf page: http://www.brendangregg.com/perf.html
[1] http://courses.cs.washington.edu/courses/cse590g/11sp/36575....
"7 The conventional use of %rbp as a frame pointer for the stack frame may be avoided by using %rsp (the stack pointer) to index into the stack frame. This technique saves two instructions in the prologue and epilogue and makes one additional general-purpose register (%rbp) available."
%rbp is mentioned elsewhere, eg, "optionally used as frame pointer"
This ABI does not appear to specify that the frame pointer is omitted. It uses the words "may" and "optionally". Which means, the gcc engineers can choose to do what they want. And they should choose to keep the frame pointer _by default_, and _optionally_ omit it (for when the sacrifice is deemed worth it): -fomit-frame-pointer. This would better follow the language used in the ABI! :-)
We've found debuginfo to be large (size, bytes), which can slow down instance creation, which means we must run with a higher headroom to accommodate. A stripped-down debuginfo that just enabled stack walking might do.
For the operating system, we use FreeBSD version 10. This was selected for its balance of stability and features, a strong development community and staff expertise. All code improvements, feature additions, and bug fixes are contributed directly back to the open source community via the FreeBSD committers on our team. We also strive to stay at the front of the FreeBSD development process, allowing us to have a tight feedback loop with other community and partner developers. The result has been a positive open source ecosystem that lowers our development costs and multiplies the effectiveness of our efforts..