是否存在类似于Visual Profiler for CUDA的调试应用程序?它根据执行时间在功能级别显示有关应用程序的信息。是否有针对常规 C/C++ 应用程序的功能,以便我可以查看哪些函数占用的时间和内存最多?
我正在尝试调试一个读取大量数据文件并使用自定义类来读取文件并在内部将其表示为向量向量的应用程序。我有另一个类,它表示对数据文件中的数据执行的操作。当我在循环中读取越来越多的文件并对其进行操作时,内存使用量只会增加,直到操作系统杀死应用程序。我一直很擅长清理使用动态内存。一些可视化的东西可以帮助我浏览所有文件和功能,看看哪些使用时间和内存最多,这将是非常有益的!
我可以在我的应用程序中使用 libproc 来确认循环的每次迭代,内存使用量从大约 500 兆兆增加到高达 19 GB。这不应该是因为数据的范围在循环内,所以在循环的下一次迭代中,使用数据的 C++ 对象应该已经被清除并返回给操作系统,但这并没有发生。
我希望这不会太模糊,谢谢!