Добавление еще трех линий арифметических расчетов заставляет этот метод займет гораздо больше времени [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Добавление еще трех линий арифметических расчетов заставляет этот метод займет гораздо больше времени [закрыто]

Сообщение Anonymous »

Я кодирую Ай в шахматах, и для этого вам нужен способ подсчитать кусочки, чтобы выяснить, насколько хороша позиция. И когда я проверил свой метод, который подсчитывает части, я заметил, что это было немного медленно, поэтому я отчасти проверил его, чтобы увидеть, что занимало так долго, и я нашел что -то чрезвычайно странное. Для фрагмента кода, который я написал ниже, когда я запускаю 7 или менее из 10 строк кода, он работает очень быстро всего около 10 миллионов секунд, чтобы запустить 100 миллионов раз. Но когда я запускаю все 10 строк кода, для работы 100 миллионов секунд займет 1000 миллионов секунд, это на 100 раз замедление, когда я запускаю все. И не имеет значения, какую 3 линии я исключаю, чтобы ускорить его, я пробовал много перестановки, и пока у меня есть 7 или менее из 10 линий, это идет быстро, и если у меня есть более 7, это идет медленно каждый раз. Я спросил CHATGPT, и он сказал мне, что это были оптимизации JIT, которые вызывали колебания, но это не имеет никакого смысла, потому что то, как я сделал свой тест на скорость, я добавил общий результат, чтобы запретить какую -либо оптимизацию JIT и заставлять его выполнять всю работу каждый раз. Я не могу позволить себе иметь медленный код оценки, шахматы AI лучше, чем быстрее. Пожалуйста, помогите. < /P>
int eval = 0;
eval += (whitePawnCount * 82 * mgPhase) + (whitePawnCount * 94 * egPhase);
eval += (whiteKnightCount * 337 * mgPhase) + (whiteKnightCount * 281 * egPhase);
eval += (whiteBishopCount * 365 * mgPhase) + (whiteBishopCount * 297 * egPhase);
eval += (whiteRookCount * 477 * mgPhase) + (whiteRookCount * 512 * egPhase);
eval += (whiteQueenCount * 1025 * mgPhase) + (whiteQueenCount * 936 * egPhase);
eval -= (blackPawnCount * 82 * mgPhase) + (blackPawnCount * 94 * egPhase);
eval -= (blackKnightCount * 337 * mgPhase) + (blackKnightCount * 281 * egPhase);
eval -= (blackBishopCount * 365 * mgPhase) + (blackBishopCount * 297 * egPhase);
eval -= (blackRookCount * 477 * mgPhase) + (blackRookCount * 512 * egPhase);
eval -= (blackQueenCount * 1025 * mgPhase) + (blackQueenCount * 936 * egPhase);
return eval;


Подробнее здесь: https://stackoverflow.com/questions/796 ... d-take-muc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»