Какими способами можно помочь выявить проблемы в большом многопоточном приложении c ++, которые могут быть обременены доступом к хранилищу ввода-вывода?
Я могу проанализировать приложение, чтобы найти конкретные замедления для определенных прогонов, но я не могу имитировать медленный ввод-вывод, чтобы помочь идентифицировать конкретные проблемные области.
Производительность может быть разной, если настроены какие-либо основные компоненты системы (ЦП, память и ввод / вывод), и я думаю, что было бы полезно увидеть разницу в прогонах, в которых этот набор зависимых компонентов меняется.
Я знаком с запущенными инструментами, такими как VTune, если бы внутри этого анализатора было что-то, что может сделать это, я хотел бы знать, но я был бы открыт для использования других инструментов.
Вы можете создать и смонтировать файловую систему FUSE, которая просто задерживает обычные вызовы файловой системы: http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/