{"_id":"54b8f06d5d85c00c00e035cf","__v":1,"category":{"_id":"54b8f06d5d85c00c00e035cc","project":"54345d5e0e8e2b0e003416d5","version":"54b8f06c5d85c00c00e035cb","__v":2,"pages":["54b8f06d5d85c00c00e035cd","54b8f06d5d85c00c00e035ce","54b8f06d5d85c00c00e035cf","54b8f06d5d85c00c00e035d0","54d1296a875f240d002cb7cc"],"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2014-10-07T21:38:38.308Z","from_sync":false,"order":9999,"slug":"documentation","title":"Documentation"},"project":"54345d5e0e8e2b0e003416d5","version":{"_id":"54b8f06c5d85c00c00e035cb","forked_from":"54b6d41b7379a90c00f53aec","__v":1,"project":"54345d5e0e8e2b0e003416d5","createdAt":"2015-01-16T11:05:16.490Z","releaseDate":"2015-01-16T11:05:16.490Z","categories":["54b8f06d5d85c00c00e035cc"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"0.1.10","version":"0.1.10"},"user":"54345d430e8e2b0e003416cd","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-01-05T18:32:32.739Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"Rbkit ships with a desktop application (available for OSX and Linux), which can be used for connecting to a live application and profiling it.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/8BBkYY2RteKA6Vp0bCGA_rbkit_landing.png\",\n        \"rbkit_landing.png\",\n        \"1212\",\n        \"974\",\n        \"#3d5e82\",\n        \"\"\n      ],\n      \"caption\": \"Rbkit desktop application\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Installing Rbkit desktop application\"\n}\n[/block]\nYou can download Rbkit application for OSX or Linux from [Downloads Page](http://rbkit.codemancers.com/v0.1.10/page/downloads).\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Connecting to a Live Ruby application\"\n}\n[/block]\nYou can go ahead and press `Connect` button which will bring up dialog box below. For most locally running applications the pre-populated connection parameters should work, but you can modify them if you want.\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/x3GyC3WBSsQcPNV4PA6z_Screen%20Shot%202015-01-05%20at%201.39.39%20pm.png\",\n        \"Screen Shot 2015-01-05 at 1.39.39 pm.png\",\n        \"507\",\n        \"328\",\n        \"#294b73\",\n        \"\"\n      ],\n      \"caption\": \"Connection to a Ruby app\"\n    }\n  ]\n}\n[/block]\nRbkit uses `zeromq` underneath and you can try to connect even if you have not started the Server. The desktop application will automatically connect whenever servers comes up.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Charts and object generation views\"\n}\n[/block]\nOnce connected you should be able to receive information about your application right away. \n\n## Heap and GC charts\nAs shown in the screen below, you should be able to see heap and GC charts and other GC stats right away.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/qPmqfSCeTdO2YvuPmPM0_Screen%20Shot%202015-01-05%20at%201.42.51%20pm.png\",\n        \"Screen Shot 2015-01-05 at 1.42.51 pm.png\",\n        \"1212\",\n        \"974\",\n        \"#9a4b32\",\n        \"\"\n      ],\n      \"caption\": \"Heap and GC charts\"\n    }\n  ]\n}\n[/block]\n## Object generation information\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/Sdq8su9RR22VX54ywmEt_Screen%20Shot%202015-01-05%20at%201.42.57%20pm.png\",\n        \"Screen Shot 2015-01-05 at 1.42.57 pm.png\",\n        \"1212\",\n        \"974\",\n        \"#25446c\",\n        \"\"\n      ],\n      \"caption\": \"Object generation information\"\n    }\n  ]\n}\n[/block]\nPlease keep in mind - object generation information is not completely reliable, because of lack of information from Ruby runtime about generation of objects before profiling was enabled (Generation information is more easily available on Ruby 2.2.0 - but current rbkit\nrelease does not uses that information)\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Taking object snapshots and comparing\"\n}\n[/block]\nYou can take full heap snapshot of a process and compare using Rbkit. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7tr9wiAGRMegFVjXOR5K_Screen%20Shot%202015-01-05%20at%201.57.02%20pm.png\",\n        \"Screen Shot 2015-01-05 at 1.57.02 pm.png\",\n        \"1212\",\n        \"974\",\n        \"#28395d\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n## You can view Parents of objects or references held by objects.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/O7ONGXudR5yiNjyrVV37_Screen%20Shot%202015-01-14%20at%205.04.01%20pm.png\",\n        \"Screen Shot 2015-01-14 at 5.04.01 pm.png\",\n        \"753\",\n        \"507\",\n        \"#184396\",\n        \"\"\n      ],\n      \"caption\": \"Object parents\"\n    }\n  ]\n}\n[/block]\n## You can compare two different snapshots to debug and see - what exactly leaked.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/UnvSzOpvT3OX4EzA9SsL_Screen%20Shot%202015-01-05%20at%201.57.33%20pm.png\",\n        \"Screen Shot 2015-01-05 at 1.57.33 pm.png\",\n        \"1212\",\n        \"974\",\n        \"#1a4899\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]","excerpt":"Using Rbkit desktop application","slug":"using-rbkit-desktop-app","type":"basic","title":"Using Rbkit Desktop app"}

Using Rbkit Desktop app

Using Rbkit desktop application

Rbkit ships with a desktop application (available for OSX and Linux), which can be used for connecting to a live application and profiling it. [block:image] { "images": [ { "image": [ "https://files.readme.io/8BBkYY2RteKA6Vp0bCGA_rbkit_landing.png", "rbkit_landing.png", "1212", "974", "#3d5e82", "" ], "caption": "Rbkit desktop application" } ] } [/block] [block:api-header] { "type": "basic", "title": "Installing Rbkit desktop application" } [/block] You can download Rbkit application for OSX or Linux from [Downloads Page](http://rbkit.codemancers.com/v0.1.10/page/downloads). [block:api-header] { "type": "basic", "title": "Connecting to a Live Ruby application" } [/block] You can go ahead and press `Connect` button which will bring up dialog box below. For most locally running applications the pre-populated connection parameters should work, but you can modify them if you want. [block:image] { "images": [ { "image": [ "https://files.readme.io/x3GyC3WBSsQcPNV4PA6z_Screen%20Shot%202015-01-05%20at%201.39.39%20pm.png", "Screen Shot 2015-01-05 at 1.39.39 pm.png", "507", "328", "#294b73", "" ], "caption": "Connection to a Ruby app" } ] } [/block] Rbkit uses `zeromq` underneath and you can try to connect even if you have not started the Server. The desktop application will automatically connect whenever servers comes up. [block:api-header] { "type": "basic", "title": "Charts and object generation views" } [/block] Once connected you should be able to receive information about your application right away. ## Heap and GC charts As shown in the screen below, you should be able to see heap and GC charts and other GC stats right away. [block:image] { "images": [ { "image": [ "https://files.readme.io/qPmqfSCeTdO2YvuPmPM0_Screen%20Shot%202015-01-05%20at%201.42.51%20pm.png", "Screen Shot 2015-01-05 at 1.42.51 pm.png", "1212", "974", "#9a4b32", "" ], "caption": "Heap and GC charts" } ] } [/block] ## Object generation information [block:image] { "images": [ { "image": [ "https://files.readme.io/Sdq8su9RR22VX54ywmEt_Screen%20Shot%202015-01-05%20at%201.42.57%20pm.png", "Screen Shot 2015-01-05 at 1.42.57 pm.png", "1212", "974", "#25446c", "" ], "caption": "Object generation information" } ] } [/block] Please keep in mind - object generation information is not completely reliable, because of lack of information from Ruby runtime about generation of objects before profiling was enabled (Generation information is more easily available on Ruby 2.2.0 - but current rbkit release does not uses that information) [block:api-header] { "type": "basic", "title": "Taking object snapshots and comparing" } [/block] You can take full heap snapshot of a process and compare using Rbkit. [block:image] { "images": [ { "image": [ "https://files.readme.io/7tr9wiAGRMegFVjXOR5K_Screen%20Shot%202015-01-05%20at%201.57.02%20pm.png", "Screen Shot 2015-01-05 at 1.57.02 pm.png", "1212", "974", "#28395d", "" ] } ] } [/block] ## You can view Parents of objects or references held by objects. [block:image] { "images": [ { "image": [ "https://files.readme.io/O7ONGXudR5yiNjyrVV37_Screen%20Shot%202015-01-14%20at%205.04.01%20pm.png", "Screen Shot 2015-01-14 at 5.04.01 pm.png", "753", "507", "#184396", "" ], "caption": "Object parents" } ] } [/block] ## You can compare two different snapshots to debug and see - what exactly leaked. [block:image] { "images": [ { "image": [ "https://files.readme.io/UnvSzOpvT3OX4EzA9SsL_Screen%20Shot%202015-01-05%20at%201.57.33%20pm.png", "Screen Shot 2015-01-05 at 1.57.33 pm.png", "1212", "974", "#1a4899", "" ] } ] } [/block]