Вообще говоря, я пишу код, который экономит память или код, чтобы сэкономить время обработки простых объектов для приложений смартфонов? - PullRequest
2 голосов
/ 29 октября 2010

Я не уверен, что это лучший пример, но здесь идет. Допустим, я хочу нарисовать объект на холсте в приложении для Android. Мне нужно немного посчитать и вызвать метод для возврата размера экрана, чтобы выяснить, где его нарисовать, поскольку мое приложение должно поддерживать несколько экранов. Мне действительно нужно сделать эту процедуру только один раз, поскольку каждый раз, когда я хочу, чтобы объект был нарисован, он рисуется в одном и том же месте. Если я делаю процедуру только один раз, мне нужно хранить возвращаемые значения в памяти, чтобы я мог обратиться к ним позже.

В качестве альтернативы, я мог бы вызывать процедуру для получения этих значений каждый раз, когда я хочу нарисовать объект, поэтому мне не нужно хранить какие-либо значения в памяти в течение всего времени существования операции.

Теперь я знаю, что не все случаи будут одинаковыми, потому что я мог бы написать причудливый алгоритм на 100 000 строк, который только что возвратил бы целочисленное значение, или перейти к противоположной крайности, но я надеюсь, что есть общий обмен знаниями, который как правило, считается приемлемым.

Итак, каков правильный подход? Вы можете уточнить?

Спасибо, ребята!

Ответы [ 2 ]

4 голосов
/ 29 октября 2010

Общеизвестным компромиссом, которым я пользуюсь, является «Не преждевременно оптимизировать». Я строю свой код, выбирая самую простую и понятную реализацию, которую я могу сделать в то время. Это самый быстрый способ написания правильно работающего кода. Затем я тестирую и профилирую код. Только тогда я обращаюсь к областям, которые нуждаются в оптимизации.

Если в профилированном коде используется слишком много памяти, я возвращаюсь и оптимизирую пространство под стихи времени. Или наоборот, если профилированный код выполняется слишком медленно.

Если я трачу слишком много времени на предварительные размышления о том, как оптимизировать код, я ввожу ненужные сложности и неизменно не обращаю должного внимания на важные оптимизации в конечной системе.

0 голосов
/ 29 октября 2010

Зависит от типа приложений. Знаете ли вы кривую спроса-предложения в экономике? пойти на предельную стоимость ... По крайней мере для смартфонов, это не имеет большого значения, если вы не убиваете слишком много памяти или вычислительной мощности, чтобы смотреть на ваше приложение как неловко медленное.

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