如何判断一个算法的性能?无非就是
判断一个算法的时间复杂度和空间复杂度
以及在特定CPU架构下的特殊性能,比如有没有FPU。
方法
进行Big-O分析,就是算法导论里那种,对于复杂的运算过程不适用
限定CPU能力,内存,计算运行时间。由于CPU是分时计算的,此时可以profile一下算法本身占了多少比例。如果是跑在复杂的系统上,需要top一下看看占用了多少比例,这样可以了解其他进程对它的影响。
计算消耗内存
方法1:
adb shell dumpsys meminfo <package_name|pid> [-d]
** MEMINFO in pid 21988 [com.mobvoi.companion] **
Pss Private Private Swapped Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 102295 102156 0 1036 119936 101222 18713
Dalvik Heap 52844 52200 0 12916 77811 61571 16240
Dalvik Other 1165 1156 0 0
Stack 496 496 0 0
Ashmem 4 4 0 0
Gfx dev 42480 42480 0 0
Other dev 4 0 4 0
.so mmap 11478 244 9416 2648
.apk mmap 347 0 108 0
.ttf mmap 10 0 4 0
.dex mmap 8448 4 8444 0
.oat mmap 11165 0 8240 4
.art mmap 4609 1000 668 60
Other mmap 485 8 328 0
EGL mtrack 93288 93288 0 0
Unknown 228 204 0 52
TOTAL 329346 293240 27212 16716 197747 162793 34953
方法2:
用Android Studio