автобокс и производительность - PullRequest
2 голосов
/ 27 октября 2008

У меня есть приложение, в котором я выполняю сотни тысяч вычислений. В настоящее время все наши ценности двойные. Я использую движок JFormula для большинства вычислений и заметил, что API принимает двойной параметр, поэтому при переходе в Double происходит некоторый автобокс. Я прочитал несколько статей, создал несколько простых тестов и заметил снижение производительности, но все еще пытаюсь выяснить, сколько времени потребуется, чтобы просмотреть мой код и исправить это, будет стоить каких-либо улучшений производительности. Мне интересно, имел ли кто-нибудь еще опыт с чем-то похожим и повышением производительности при использовании примитивов?

Ответы [ 3 ]

3 голосов
/ 27 октября 2008

Нельзя использовать автобокс и распаковку для научных вычислений или другой чувствительный к производительности числовой код. - Sun FAQ

2 голосов
/ 27 октября 2008

Как и другие предложения (которые хороши - профилирование и бенчмаркинг очень важны), я бы сказал, что если JFormula выполняет что-либо значимое в каждом вызове метода, тогда происходит упаковка / распаковка при Звонок, скорее всего, будет незначительным. Распаковка, в частности, быстрая, так как не требует никакого выделения памяти - просто скопируйте существующее значение из коробки.

Короче говоря: конечно, делайте тесты, но я бы не ожидал, что попадание будет значительным.

0 голосов
/ 27 октября 2008

То, что вы можете попробовать, это сделать простые тесты с и без автобокс пропустите их через профилировщик времени (рекомендуется visualvm). Найдите разницу во времени и масштабируйте ее в своей программе, чтобы найти приблизительное время в вашей программе.

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