{"id":15899138,"url":"https://github.com/prozi/fluffy","last_synced_at":"2025-04-02T19:14:51.488Z","repository":{"id":57239012,"uuid":"139196183","full_name":"Prozi/fluffy","owner":"Prozi","description":"Dont allow your fluffy memleak to grow, Fluffy detects memleaks in loops by measuring times and aggregating for output","archived":false,"fork":false,"pushed_at":"2020-08-03T03:43:45.000Z","size":401,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T17:12:21.137Z","etag":null,"topics":["detection","fluffy","memleak","mit-license","opensource","universal-javascript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Prozi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-29T21:06:12.000Z","updated_at":"2023-02-11T05:58:19.000Z","dependencies_parsed_at":"2022-09-05T08:21:33.497Z","dependency_job_id":null,"html_url":"https://github.com/Prozi/fluffy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prozi%2Ffluffy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prozi%2Ffluffy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prozi%2Ffluffy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prozi%2Ffluffy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Prozi","download_url":"https://codeload.github.com/Prozi/fluffy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246875909,"owners_count":20848049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["detection","fluffy","memleak","mit-license","opensource","universal-javascript"],"created_at":"2024-10-06T10:11:13.771Z","updated_at":"2025-04-02T19:14:51.468Z","avatar_url":"https://github.com/Prozi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fluffy 🐱\n\n![Fluffy Logo 512px](https://github.com/Prozi/fluffy/raw/master/logo/512px.png)\n\n## The purpose\n\nOf course we all have Chrome Profiler, but what if...\n\nWhat if we're so crazy to write a nodejs backend game?\n\nProfiling in node has never been easier!\n\nJust plug in relevant `fluffy.time` and `fluffy.timeEnd` similar to `console.time` and `console.timeEnd` calls in your code\n\nIt will collect the data, aggregate it, and if required at any moment (like once in a gameloop when in debugging mode)...\n\nPrint it out with `fluffy.debugAll` or to lesser extent `fluffy.debug`.\n\n## Easy usage\n\n```javascript\n...\n\n// before function or at start, to start counter\nfluffy.time('your_function_1')\n// call whatever you need, do stuff, use processor\nyour_function()\n// after function call or at end, to end counter\nfluffy.timeEnd('your_function_1')\n\n...\n\n// will print out if any of above functions* took more than 5ms\nfluffy.debugAll(5)\n\n...\n```\n\n## Installation\n\n`yarn install fluffy-memleak --save`\n\n## Test\n\n`yarn test`\n\n## The only docs you'll need\n\n```javascript\n// import Fluffy from 'fluffy-memleak'\n// const Fluffy = require('fluffy-memleak')\nvar Fluffy = require('fluffy-memleak')\nvar fluffy = new Fluffy()\n\nfluffy.time('0ms')\nfluffy.time('500ms')\nfluffy.time('1000ms')\n\nfluffy.timeEnd('0ms')\n\nsetTimeout(() =\u003e {\n  fluffy.timeEnd('500ms')\n}, 500)\n\nsetTimeout(() =\u003e {\n  fluffy.timeEnd('1000ms')\n\n  // will print all that took \u003e 250ms (500ms + 1000ms)\n  fluffy.log(fluffy.debugAll(250))\n\n  // will print this one, always\n  fluffy.log(fluffy.debug('0ms'))\n\n  // wont print anything, because it lasted 0ms \u003c 1000ms\n  fluffy.log(fluffy.debug('0ms', 1000))\n\n  // end test\n  process.exit(0)\n}, 1000)\n```\n\n## Author\n\nJacek Pietal: [Prozi](https://github.com/Prozi)\n\nLogo Author: [dee-y](https://github.com/dee-y)\n\n## License\n\nLicense: MIT\n\nLogo License: Creative Commons Attribution 4.0 International License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprozi%2Ffluffy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprozi%2Ffluffy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprozi%2Ffluffy/lists"}