{"id":19600281,"url":"https://github.com/pharo-ide/objectstatistics","last_synced_at":"2026-02-23T03:40:26.927Z","repository":{"id":40362545,"uuid":"97331825","full_name":"pharo-ide/ObjectStatistics","owner":"pharo-ide","description":"A tool to analyse set of objects by computing different kind of metrics and look at them from different angles","archived":false,"fork":false,"pushed_at":"2022-12-21T23:29:07.000Z","size":80,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-05T01:32:21.095Z","etag":null,"topics":["pharo"],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pharo-ide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-15T17:31:45.000Z","updated_at":"2022-05-17T05:51:33.000Z","dependencies_parsed_at":"2023-01-30T05:01:17.876Z","dependency_job_id":null,"html_url":"https://github.com/pharo-ide/ObjectStatistics","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FObjectStatistics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FObjectStatistics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FObjectStatistics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FObjectStatistics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharo-ide","download_url":"https://codeload.github.com/pharo-ide/ObjectStatistics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251171614,"owners_count":21547120,"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":["pharo"],"created_at":"2024-11-11T09:14:20.619Z","updated_at":"2025-10-04T01:41:58.073Z","avatar_url":"https://github.com/pharo-ide.png","language":"Smalltalk","readme":"# ObjectStatistics\n\n[![GitHub release](https://img.shields.io/github/release/pharo-ide/ObjectStatistics.svg)](https://github.com/pharo-ide/ObjectStatistics/releases/latest)\n[![Unit Tests](https://github.com/pharo-ide/ObjectStatistics/actions/workflows/tests.yml/badge.svg)](https://github.com/pharo-ide/ObjectStatistics/actions/workflows/tests.yml)\n\n[![Pharo 7.0](https://img.shields.io/badge/Pharo-7.0-informational)](https://pharo.org)\n[![Pharo 8.0](https://img.shields.io/badge/Pharo-8.0-informational)](https://pharo.org)\n[![Pharo 9.0](https://img.shields.io/badge/Pharo-9.0-informational)](https://pharo.org)\n[![Pharo 10](https://img.shields.io/badge/Pharo-10-informational)](https://pharo.org)\n[![Pharo 11](https://img.shields.io/badge/Pharo-11-informational)](https://pharo.org)\n\nObjectStatistics is tool to analyse set of objects by computing different kind of metrics and look at them from different angles.\n\nImaging that we have collection of message sends and we want to know number of message sends in dimension of receiver, receiver class and message selector. We have different angles to look at this data: from receiver class to selector and receiver or from selector to receiver class and receiver or any other combination. \n\nWe also could analyze different kind of metrics which could be computed on given objects. It could be number of unique receivers, execution time, executed lines of code, etc.\n\nThis package implements computation of object statistics over declared metrics and dimensions space.\n\nDescribed example could be look like:\n```Smalltalk\nstat := ObjectStatistics new.\nstat\n  countAllAs: 'sends';\n  countDifferent: [ :message | message receiver ] as: 'instances'.\nstat \n  dimension: [ :message | message receiver class ] named: 'classes';\n  with: [ \n    stat dimension: [ :message | message selector ] named: 'msgs';\n    with: [ \n      stat dimension: [ :r | r ] named: 'receivers']];\n  dimension: [ :message | message selector ] named: 'msgs';\n  with: [ \n    stat dimension: [ :message | message receiver class ] named: 'classes';\n    with: [ \n        stat dimension: [ :r | r ] named: 'receivers']].\n\t\t\t\nstat accumulateAll: messageSends\n ```\n## Installation\n```Smalltalk\nMetacello new\n  baseline: 'ObjectStatistics';\n  repository: 'github://pharo-ide/ObjectStatistics';\n  load\n```\nUse following snippet for stable dependency in your project baseline:\n```Smalltalk\nspec\n    baseline: 'ObjectStatistics'\n    with: [ spec repository: 'github://pharo-ide/ObjectStatistics:v1.0.0' ]\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-ide%2Fobjectstatistics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharo-ide%2Fobjectstatistics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-ide%2Fobjectstatistics/lists"}