java - 简单的 for 循环在 android 中执行需要时间

标签 java android android-emulator

我已经用java实现了一个代码,其中有一个for循环,循环次数从0到0x10000次不等。 现在我将此代码导入到 android 中并运行相同的代码。

问题如果: 在 Core java 循环中,最多 2 秒内执行。 但是当在 android 中执行相同的循环时,它需要 4 分钟(恶心)

请有人帮我解决这个问题,我粘贴我的循环以供您理解:

   for (int r = 0; r < 0x10000; r++) {
            for (int j = 0; j < password.length; j += 4) {
                long[] key = {0, 0, 0, 0};
                for (int i = 0; i < 4; i++) {
                    if (i + j < password.length) {
                       //do something
                    }
                }
                //calling one method.
            }

        }

基本上主循环最多变化 64000 次。请提出建议。

最佳答案

也许这可以有所帮助:

int maxR = 0x10000;
int passwordLength = password.length;
for (int r = 0; r < maxR; r++) {
    for (int j = 0; j < passwordLength; j += 4) {
        long[] key = {0, 0, 0, 0};
        for (int i = 0; i < 4; i++) {
            if (i + j < passwordLength) {
               //do something
            }
        }
        //calling one method.
    }
}

但是我认为需要优化的可能是你最后一个for循环的内容以及你在它之后调用的方法......

[编辑]如果您无法访问“key”数组中除了索引 i 处的其他项目,您可以执行 Joop Eggen 建议的操作:

int maxR = 0x10000;
int passwordLength = password.length;
long[] key = {0, 0, 0, 0};
for (int r = 0; r < maxR; r++) {
    for (int j = 0; j < passwordLength; j += 4) {
        for (int i = 0; i < 4; i++) {
            key[i] = 0;
            if (i + j < passwordLength) {
               //do something
            }
        }
        //calling one method.
    }
}

关于java - 简单的 for 循环在 android 中执行需要时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17189532/

相关文章:

android - 如何使用终端运行特定的 Android 应用程序?

java - 将字符串插入PreparedStatement

android - 将物理应用到 Android View 对象

android - 广播接收器在 Android 中的工作原理

Android Studio 卡住 'Connecting to emulator'

javascript - 在 render() 中显示 featch json 数据时 React Native 出错

java - 使用带有 ajax 请求的表单调用 Servlet (FIlter)(必须使用授权 header )

java - Java 中的分区函数 NullPointerException

java - 字符串连接运算符

android - 如何为 textiew 的某些文本设置不同的颜色并使该文本可点击?