I am going through indexing component of intellij idea.
I would like collect information related to index time for a given file size.
FileBasedIndex.indexFileContent(Project, FileContent) is the function for which I would like to gather data. There are few ways to gather this information:
1. modify FileBasedIndex and add required logging information.
2. use tracing tools like: btrace to inject code on method entry of indexFileContent().
Problem with btrace is its strictly read-only and not possible to invoke methods on params (like: FileContent.getVirtualFile().getName() are not allowed).
I would like to know whether jetbrains does collect such information? How do they gather this information?
I tried using yourkit profiler in tracing mode, but - yourkit adds lot of overhead and its just provides aggregate information and doesnt provide hooks to collect additional information (like: fileName, content size etc).