какой из них лучше для производительности - PullRequest
0 голосов
/ 05 февраля 2019

Я решаю проблему, и мне нужно максимально оптимизировать мой код.

У меня есть цикл, в котором мне нужно выполнить некоторые вычисления, и мне нужно добавить элемент в массив длядальнейшие вычисления:

for (int i = 0; i < lightCount; i++) {
    int dis = in.nextInt();
    int dur = in.nextInt();
    double unit = distance / duration * 3.6;
    array[i] = unit;

    if (speed < unit) {
        double n = unit / (2 * speed);

        if (!((n - (int) n) == 0))
            n = n + 1;

        int tmp = (int) (unit / (2 * (int) n));

        if (tmp < answer)
            answer = tmp;
    }
}

Что является лучшим из следующих ситуаций:

  1. Использование unit или прямой доступ к массиву (замена unit на array[i])
  2. Используйте промежуточные переменные или рассчитайте результат напрямую.Например, удалив n и заменив его формулой
  3. Создайте много методов для разбивки кода или поместите все вычисления в один метод

1 Ответ

0 голосов
/ 05 февраля 2019
  1. Это не имеет значения.

  2. Это имеет значение, только если вы вызываете функции в своих вычислениях и используете одно и то же выражение несколько раз.В этом случае это не имеет значения.

  3. Это не имеет значения.Для удобства чтения вам может потребоваться разделить разные функции на разные функции.

РЕДАКТИРОВАТЬ: IO часто является узким местом.Что делает in.nextInt ()?Вы можете переместить его за пределы цикла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...