{"push_id":753835535,"size":1,"distinct_size":1,"ref":"refs/heads/production","head":"be9f7ea67db0749fac030d604817904e09206ae6","before":"e8e021632d932ad87477bb7f7f3012d2ce79be8b","commits":[{"sha":"be9f7ea67db0749fac030d604817904e09206ae6","author":{"email":"d1abc94d70526bfcf3e4b0ce727cb9a6fbb52a3a@inboxapp.com","name":"Eben Freeman"},"message":"Refine profiling instrumentation.\n\nSummary:\nPrevious instrumentation of the codebase used pyinstrument out of the box, and\ndumped its output to stdout on receiving SIGTRAP. This worked for ad-hoc\ninvestigation of a single process, but is not amenable to collecting profiles\nfrom multiple sync instances, tracking changes over time, etc.\n\nInstead, expose raw profile data over a simple embedded HTTP interface, using\nthe line format popularized by https://github.com/brendangregg/FlameGraph. This\nis easy to collect, slice, dice, visualise, etc.\n\nNote: this is currently only for sync, mostly because it's easy to have each\nsync process listen on a distinct, deterministic port. Don't have a good story\nfor API worker processes yet.\n\nTest Plan: Run sync locally. Curl exposed profile endpoint.\n\nReviewers: kav-ya\n\nReviewed By: kav-ya\n\nDifferential Revision: https://phab.nylas.com/D1862","distinct":true,"url":"https://api.github.com/repos/nylas/sync-engine/commits/be9f7ea67db0749fac030d604817904e09206ae6"}]}