Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用android studio了解部分代码的性能_Java_Android_Performance_Android Studio_Android Ide - Fatal编程技术网

Java 如何使用android studio了解部分代码的性能

Java 如何使用android studio了解部分代码的性能,java,android,performance,android-studio,android-ide,Java,Android,Performance,Android Studio,Android Ide,我想知道我使用android studio的代码片段的性能。 我在这里写了一小部分代码来解释我的问题 params.rightMargin = (int) (getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin)); params.leftMargin = (int) (getResources().getDimensionPixelOffset(R.dimen.rightAndLeftMargin)); 或者,这些

我想知道我使用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负载、执行时间等)

注意:这不是唯一一种情况,我有几十种相同的情况,因此我希望所有类型的代码都有一个通用的解决方案。

使用它,您可以很容易地看到在选定的时间范围内调用了哪些线程上的哪些方法。就我个人而言,我建议使用火焰图表来查看哪些操作花费的时间最多

请记住,将探查器连接到应用程序的进程会显著降低进程的速度,因此,如果某个方法调用花费(例如1秒)的时间,实际上要少得多。

使用探查器,您可以很容易地看到在选定的时间范围内调用了哪些线程上的哪些方法。就我个人而言,我建议使用火焰图表来查看哪些操作花费的时间最多


请记住,将探查器连接到应用程序的进程会显著降低其速度,因此,如果某个方法调用花费(例如1秒)的时间,实际上要少得多。

我根本不了解android。但是在编写代码时,如果要进行计算,最好只进行一次,然后重用结果。在你的例子中,后者更好

我假设资源已经在进程的内存中,所以这里的内存占用可能很小。它将在堆栈中为
getReaources
创建一个新方法,并为
getDimensionPixelOffset
创建另一个新方法。创建局部变量要便宜得多


如果进行IO操作(如访问文件或http操作),则占用空间会显著增加。在这种情况下,最好声明一个局部变量并重用它。

我根本不懂android。但是在编写代码时,如果要进行计算,最好只进行一次,然后重用结果。在你的例子中,后者更好

我假设资源已经在进程的内存中,所以这里的内存占用可能很小。它将在堆栈中为
getReaources
创建一个新方法,并为
getDimensionPixelOffset
创建另一个新方法。创建局部变量要便宜得多

如果进行IO操作(如访问文件或http操作),则占用空间会显著增加。在这些情况下,最好声明一个局部变量并重用它