在 Pharo 中获取所有已安装方法的正确方法
Proper way to get all installed methods in Pharo
有时你想分析图像中的所有方法。一种方法是使用 CompiledMethod allInstances
。但是这样做很危险,因为
- 您最终可能会使用尚未进行垃圾回收的旧方法。
- 由于技术原因,可能存在匿名 类 或其他实例的编译方法。
我想到的一件事是:
RPackage organizer packages flatCollect: #methods
独立于方言的表达方式是
ProtoObject withAllSubclasses gather: [:cls |
cls methodDictionary values asArray,
cls class methodDictionary values asArray]
我建议使用 SystemNavigation
,这是为此设计的 class:
SystemNavigation default allMethodsSelect: [:m | true]
有时你想分析图像中的所有方法。一种方法是使用 CompiledMethod allInstances
。但是这样做很危险,因为
- 您最终可能会使用尚未进行垃圾回收的旧方法。
- 由于技术原因,可能存在匿名 类 或其他实例的编译方法。
我想到的一件事是:
RPackage organizer packages flatCollect: #methods
独立于方言的表达方式是
ProtoObject withAllSubclasses gather: [:cls |
cls methodDictionary values asArray,
cls class methodDictionary values asArray]
我建议使用 SystemNavigation
,这是为此设计的 class:
SystemNavigation default allMethodsSelect: [:m | true]