При написании чего-то, что часто создает множество (1000 с) небольших объектов, следует ли пытаться минимизировать это для производительности? Особенно, если вы не знаете, на какой системе он будет работать, от низкоуровневых настольных компьютеров до мобильных устройств. Что касается мобильных устройств, я слышал, что создание большого количества объектов сильно снижает производительность, хотя я не знаю, насколько это правда.
У меня есть пример, который хорошо показывает эту идею. Скажем, в графической программе есть метод, который в идеале вызывается для всего рисования drawPixel(Point)
. Может быть создано 1000 точек, и их можно часто повторять, как в игре, где их можно вызывать более 60 раз в секунду. В качестве альтернативы drawPixel(int x, int y)
может использоваться для минимизации создания множества объектов Point.
Я думаю, что в объектно-ориентированном дизайне предпочтительнее использовать Point. Однако использование примитивных типов может повысить производительность. Прирост производительности может быть незначительным в большинстве случаев, но я не уверен в таких вещах, как мобильные или старые машины. Какое увеличение производительности от выполнения чего-то подобного, и следует ли это принимать во внимание?
System.getProperty("java.version")
(или "java.vm.version") является отправной точкой.