サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
samsaffron.com
In 2015 I wrote about some of the tooling Ruby provides for diagnosing managed memory leaks. The article mostly focused on the easy managed leaks. This article covers tools and tricks you can use to attack leaks that you can not easily introspect in Ruby. In particular I will discuss mwrap, heaptrack, iseq_collector and chap. image1787×742 230 KB An unmanaged memory leak This little program leaks
One of the very noble goals the Ruby community which is being spearheaded by Matz is the Ruby 3x3 plan. The idea is that using large amounts of modern optimizations we can make Ruby the interpreter 3 times faster. It is an ambitious goal, which is notable and inspiring. This “movement” has triggered quite a lot of interesting experiments in Ruby core, including a just-in-time compiler and action a
At Discourse we have always been huge fans of continuous deployment. Every commit we make heads to our continuous integration test suite. If all the tests pass (ui, unit, integration, smoke) we automatically deploy the latest version of our code to https://meta.discourse.org. This pattern and practice we follow allows the thousands self-installers out there to safely upgrade to the tests-passed ve
Sam Saffron Programming, Technology and the Art of Hacking Lately I needed to add some instruments into Discourse. I wanted every request to measure: How many SQL statements and Redis commands are executed? How much time was spent in those sections? This can easily be abstracted to a more generalize problem of class ExternalClass def method_to_measure end end Solving this problem breaks down into
Compressing Brotli at the highest setting is so slow gzip -9 is practically invisible from the graph! Brotli at level 11 is not feasible for dynamic content Brotli at level 5 is competitive with gzip and produces files that are even smaller than gzip -9 Zopfli is really slow, for large files it can take 4× the time of Brotli 11. Brotli is not easy to adopt today Another complication with Brotli is
Sam Saffron Programming, Technology and the Art of Hacking When developers hear that WebSockets are going to land in the near future in Rails they get all giddy with excitement. But your users don’t care if you use WebSockets: Users want “delightful realtime web apps”. Developers want “delightfully easy to build realtime web apps”. Operations want “delightfully easy to deploy, scale and manage rea
Sam Saffron Programming, Technology and the Art of Hacking At some point in the life of every Rails developer you are bound to hit a memory leak. It may be tiny amount of constant memory growth, or a spurt of growth that hits you on the job queue when certain jobs run. Sadly, most Ruby devs out there simply employ monit , inspeqtor or unicorn worker killers. This allows you to move along and do mo
Sam Saffron Programming, Technology and the Art of Hacking Recently Godfrey Chan got Discourse working on Rails Master. It was a rather long task that involved some changes to Discourse internals and some changes to Rails internals. Knowing Rails 4.2 was just around the corner I decided that it seemed like the perfect time to see how performance is. Seeing Rails 4.2 contains the adequate record pa
Sam Saffron Programming, Technology and the Art of Hacking The article “Ruby Garbage Collection: Still Not Ready for Production” has been making the rounds. In it we learned that our GC algorithm is flawed and were prescribed some rather drastic and dangerous workarounds. At the core it had one big demonstration: Run this on Ruby 2.1.1 and you will be out of memory soon: while true "a" * (1024 **
Sam Saffron Programming, Technology and the Art of Hacking This article is about the Ruby GC. In particular it is about the GC present in Ruby MRI 2.0. The Ruby GC has been through quite a few iterations, in 1.9.3 we were introduced to the lazy sweeping algorithm and in 2.0 we were introduced bitmap marking. Ruby 2.1 is going to introduce many more concepts and is out-of-scope for this post. Heaps
Sam Saffron Programming, Technology and the Art of Hacking About a year ago we released a MiniProfiler for .Net. Ever since, I have been wishing for a Ruby port. It seems I was not alone as this Stack Overflow question attests. I am very happy to now announce our first release of MiniProfiler for Ruby. This has been made possible thanks to a large amount of effort by Aleks Totic, Robin Ward and my
Sam Saffron Programming, Technology and the Art of Hacking ##Reminder, script tags block rendering It is common advice to move all your external JavaScript includes to the footer. Recently, the movement for fancy JavaScript loaders like ControlJS, script.js and so on has also picked up steam. The reason for this advice is sound and pretty simple. Nothing, Nada, Zilch below non asynchronous or defe
Sam Saffron Programming, Technology and the Art of Hacking A few weeks ago we started noticing a fairly worrying trend at Stack Overflow. Question:Show, the most active of pages on Stack Overflow, started slowly trending up on render times. This did not happen at once, the performance leak was not huge. We noticed this by looking at our HAProxy logs which are stored in a special Sql Server instanc
このページを最初にブックマークしてみませんか?
『samsaffron.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く