如何使用 android studio 了解部分代码的性能
how to know the performance of part of code using android studio
我想知道我使用 android studio 的一小段代码的性能。
我在这里写一小部分代码来解释我的问题
params.rightMargin = (int) (getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin));
params.leftMargin = (int) (getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin));
或者这些行也可以写成:
int margin = getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin);
params.rightMargin = margin;
params.leftMargin = margin;
所以借助 android studio IDE 如何比较这两个代码的性能(如内存使用、CPU 负载、执行时间等)。
注意:这不是唯一的案例,我有几十个相同的案例,因此我想为所有类型的代码提供通用解决方案。
使用 Profiler built-in into Android Studio,您可以轻松查看在选定时间范围内调用了哪些线程的哪些方法。我个人建议使用火焰图来查看哪个操作花费的时间最多。
请记住,将探查器附加到您的应用进程会显着降低它的速度,因此如果某些方法调用需要例如1秒,实际会少很多
我根本不知道 android。但是在编写代码时,如果要进行计算,最好只进行一次,然后重复使用结果。在你的例子中,后者更好。
我假设资源已经在进程的内存中,所以这里的占用空间可能很小。它将在堆栈中为 getReaources
创建一个新方法,并为 getDimensionPixelOffset
创建另一个方法。创建一个局部变量比那个便宜得多。
如果您正在进行 IO 操作(例如访问文件或 http 操作),占用空间会显着增加。在这些情况下,最好声明一个局部变量并重用它。
我想知道我使用 android studio 的一小段代码的性能。 我在这里写一小部分代码来解释我的问题
params.rightMargin = (int) (getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin));
params.leftMargin = (int) (getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin));
或者这些行也可以写成:
int margin = getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin);
params.rightMargin = margin;
params.leftMargin = margin;
所以借助 android studio IDE 如何比较这两个代码的性能(如内存使用、CPU 负载、执行时间等)。
注意:这不是唯一的案例,我有几十个相同的案例,因此我想为所有类型的代码提供通用解决方案。
使用 Profiler built-in into Android Studio,您可以轻松查看在选定时间范围内调用了哪些线程的哪些方法。我个人建议使用火焰图来查看哪个操作花费的时间最多。
请记住,将探查器附加到您的应用进程会显着降低它的速度,因此如果某些方法调用需要例如1秒,实际会少很多
我根本不知道 android。但是在编写代码时,如果要进行计算,最好只进行一次,然后重复使用结果。在你的例子中,后者更好。
我假设资源已经在进程的内存中,所以这里的占用空间可能很小。它将在堆栈中为 getReaources
创建一个新方法,并为 getDimensionPixelOffset
创建另一个方法。创建一个局部变量比那个便宜得多。
如果您正在进行 IO 操作(例如访问文件或 http 操作),占用空间会显着增加。在这些情况下,最好声明一个局部变量并重用它。