你好我正在做一个关于编程算法测量的项目
我如何知道从开始到结束的执行时间以及一个类的 RAM 消耗在 java 中创建了一个算法,在 c++ 中创建了一个文件。
我需要从 linux shell 执行,因为我的想法是将这些结果存储在 Ruby on Rails 的变量中以供 Web 查看。所以我不能使用任何外部程序,除非这给了我在 linux 终端中的答案
为什么不试试cat /proc/1234/smaps
?
这里:1234 是应用程序的 PID。JVM 还可以访问用于获取 JVM 可用的可用内存量以及使用的内存量的方法。 Runtime.getRuntime().totalMemory() 和 Runtime.getRuntime().freeMemory() 要测量执行时间(精度不高),请使用“时间”函数。
对于 C++:
time_t start_time = time(NULL);
/*your algorithm*/
time_t end_time = time(NULL);
cerr <<"Execution Time: "<< (end_time - start_time);
对于 Java:
long startTime = System.nanoTime();
/*Your algorithm*/
long endTime = System.nanoTime();
long duration = endTime - startTime;