GET /api/v2/video/1257
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2012", "language": null, "slug": "sys_current_frames-take-real-time-x-rays-of-y", "speakers": [ "Leonardo Almeida" ], "tags": [], "id": 1257, "state": 1, "title": "sys._current_frames(): take real-time X-rays of your software for fun and performance", "summary": "[EuroPython 2012] Leonardo Almeida - 5 JULY 2012 in \"Track Spaghetti\"\n\n", "description": "Profiling is hard. Trying to understand what is making your system slow can be\nvery frustrating. Specially when it happens only when your clients are\nlooking, but not you. Python comes with elaborate profiling tools, but\nunderstanding the output of profile/cProfile can be a daunting task, specially\non complex frameworks, and these modules might be impractical in a production\nenvironment where their performance toll can make the system unusable. But\nPython is a very reflexive language, allowing extensive investigation of its\nown state during runtime, and one of its lesser known tools is the\nsys._current_frames() function. It can be used to take an X-ray of what all\nthe threads in your running Python program are doing. It can also be used for\na kind of \u201cstatistical\u201d profiling, with little impact on your running system.\nIn this talk we\u2019ll investigate how this function can be used to tell what your\nprogram is doing, exactly at the moment when it is misbehaving. We\u2019ll learn\nhow looking at a series of tracebacks, instead of a bunch of calling\nstatistics, can help zooming quickly into code hot spots. We\u2019ll also show some\ncase studies of real world server-side slowdowns that were solved by the use\nof this technique which were caused by complex interactions of different\ncomponents, including a case where a serious performance issue was diagnosed\nin a production deployment of ERP5 in a corporate client of Nexedi\u2019s.\n\n", "quality_notes": "", "copyright_text": "Standard YouTube License", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\"http://youtube.com/v/MFqP03EfT4I?version=3&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://youtube.com/v/MFqP03EfT4I?version=3&amp;hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "http://i.ytimg.com/vi/MFqP03EfT4I/hqdefault.jpg", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": null, "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "http://www.youtube.com/watch?v=MFqP03EfT4I", "whiteboard": "", "recorded": "2012-07-06", "added": "2012-09-06T22:33:07", "updated": "2014-04-08T20:28:27.224" }