{"adoption": {"forks": 136, "observed_at": "2026-08-28T04:05:49.325096+00:00", "stars": 1888}, "canonical_url": "https://ross.abutalabs.com/products/heapinspector-for-ios", "card": {"archived": false, "artifact_type": "library", "description": "Find memory issues & leaks in your iOS app without instruments", "domain": ["mobile-development", "performance", "developer-tools"], "enriched": true, "function": ["monitoring", "developer-tools"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["tapwork/HeapInspector-for-iOS"], "name": "tapwork/HeapInspector-for-iOS", "platform": [], "pushed_at": "2017-03-08T17:08:16+00:00", "repo": "tapwork/HeapInspector-for-iOS", "stars": 1888, "tags": ["memory-leaks", "heap-snapshot", "retain-cycles", "objective-c", "instruments-alternative", "cocoapods", "carthage", "memory-profiling", "debugging", "ios", "mobile"], "topics": ["memory-heap", "heapinspector", "heap-snapshot", "arc", "backtrace", "ios", "retain-cycles", "leaks", "instruments", "memory-allocation", "memory-leaks", "memory-management", "monitoring", "performance-analysis", "performance", "performance-visualization", "allocations", "objective-c", "cocoapods", "carthage"], "urls": [], "use_cases": ["find memory leaks in my ios app", "detect retain cycles under arc", "profile heap allocations on device", "debug view controllers not being deallocated", "record heap snapshot while navigating screens", "alternative to instruments for memory debugging"], "what_it_is": "HeapInspector is an Objective-C debug library that records memory heap snapshots with backtraces directly on an iOS device, letting developers find leaks, retain cycles, and abandoned memory without Apple's Instruments. It provides detailed object info including retain/release history, responder chains, and screenshots of inspected views.", "when_to_avoid": ["maintaining a Swift-first or modern iOS project (tool predates Swift era)", "you need actively maintained tooling or recent iOS support", "profiling non-iOS platforms"], "when_to_choose": ["debugging memory issues in an Objective-C iOS app on-device", "you want Instruments-like heap analysis without launching Instruments", "tracking down retain cycles and abandoned objects during a screen flow"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/heapinspector-for-ios", "repo": "tapwork/HeapInspector-for-iOS", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.325096+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:13:31.124235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8e4a7c9df4d85d58804a9f1f59000d0b7d291ab77edc7d8a0879fed442e600f", "fetched_at": "2026-08-28T04:05:49.325096+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tapwork/HeapInspector-for-iOS"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4303, "days_push": 3465, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}