我有一个查询类,它在一个大型项目中被调用,我们的一个函数特别慢。我需要识别由特定函数(操作)调用的该查询的所有实例,以便我们可以评估它。这意味着该函数调用另一个函数,并且可能有一个查询,并且该函数可能调用一个进行查询的函数,依此类推。
该语言是专有语言 (gosu),它是 java 的分支,因此实际上并没有为它构建很多工具,但基于 java 的解决方案可能会起作用。
我想我不是第一个需要这种解决方案的人,所以我想知道是否有人知道如何完成此操作或知道该问题的规范名称?
到目前为止我想到的:
我会设置记录器,但我要记录的类是“开箱即用”功能,这意味着我们不允许摆弄它。有一个日志记录功能,但我们只允许在测试/本地打开此日志记录功能,而不是在发生问题的生产环境中,我们无法在测试或本地重现该问题。
只需搜索目录:这在一定程度上有效,但需要进行回溯以清除其他函数,它只捕获目录中的内容,而不是函数可能调用的其他包中的内容。
搜索包和所有导入的类,以及它们的包/导入的类:这肯定会捕获所有相关的查询调用,但可能会捕获比需要的更多的调用,并且可能只捕获所有调用。
我知道查询调用的实例总数,而且它太大而无法手动完成并排序哪些调用属于哪个函数。