От смартфона к КПК

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » От смартфона к КПК » Series 60 » ОЗУ в смартфонах под управлением Symbian


ОЗУ в смартфонах под управлением Symbian

Сообщений 1 страница 6 из 6

1

СКОЛЬКО ПАМЯТИ В СМАРТФОНАХ НА SERIES 60?
  На первых аппаратах Series 60 - Nokia 7650 и Nokia 3650 - было всего 4 Мб памяти, пользователю оставалось 3,6 Мб. Этого объема постоянно не хватало. В Nokia N-Gage (тоже S60 1st) появилось в 4 раза больше ОЗУ - 16 Мб. На аппаратах S60 2nd памяти стало еще больше. Например, на Nokia 6630 - 20 Мб, а лежащий передо мной Nokia N70 показывает очень хорошую цифру - 53 Мб общей памяти и 32 Мб свободной.
  Среди устройств Symbian 9.x (S60 3rd) самый лучший показатель - 128 Мб на Nokia E90 и Nokia N95 8Gb. Хотя где-то 50 Мб из них операционная система забирает на свои нужды, но оставшегося вполне хватает. На прочих аппаратах N-серии с S60 3rd объем оперативной памяти составляет 64 или 96 Мб, что позволяет чувствовать себя вполне комфортно.
  QWERTY-смартфоны Nokia E61 и Nokia E70 содержат официально 64 Мб оперативной памяти (но по данным системных утилит - 48 Мб). Пользователю же доступно всего 22 Мб. Примерно так же дело обстоит с памятью и на многих других устройствах S60 3rd. Nokia E50 среди этих устройств совсем уж минималист - всего-то 32 Мб при доступных 16.

2

КАК ПОСМОТРЕТЬ СОСТОЯНИЕ ОПЕРАТИВНОЙ ПАМЯТИ
  Получить информацию об оперативной памяти стандартными средствами нельзя, для этого необходимо устанавливать дополнительные программы. Как правило, отображать информацию об оперативной памяти умеют файловые менеджеры и менеджеры задач. Выбор очень большой.
  Какую же информацию можно получить об оперативной памяти?
  1. Самое простое - узнать, сколько всего оперативной памяти в телефоне и сколько ее занято.
  2. Сколько памяти потребляет та или иная программа.
  3. Подробная картина памяти по блокам.
  Рассмотрим пункты подробнее.

  Общая информация о памяти
  Функция эта крайне проста в реализации, а потому присутствует во многих программах. Ну, например, файловый менеджер X-Plore - заходим в Tools =\> Device info:
В Best и Handy TaskMan информация о памяти отображается в главном окне программы в виде индикатора. В программе Jbak TaskMan доступная память показывается в заголовке.
  Интересную возможность предоставляет файловый менеджер Active File (он есть только под Symbian 9). Заходим в меню Tools =\> Run memory monitor (Утилиты =\> Запустить монитор памяти). После запуска этого пункта свободная оперативная память отображается поверх всех окон в системе.
Не уверен, что это нужно рядовому пользователю, но программистам и тестерам этот инструмент необходим. С его помощью можно легко обнаружить, при каких действиях в программе происходит утечка памяти.

3

Память, потребляемая программой
  На Symbian 6-7-8 (S60 1st и 2nd) получить эту информацию легко. Практически любой менеджер задач показывает объем оперативной памяти, потребляемой запущенным приложением. AppMan, Handy TaskMan, Unreal Device Manager - словом, любая программа, работающая с запущенными приложениями. Программа TaskSpy даже чертит график потребления оперативки.
  Все вроде бы хорошо... для тех пользователей, которые увидели эту возможность, сказали «да, это круто» - и забыли о ней. Существуют и другие люди - те, которым нужна не просто какая-то цифра, а точная информация. Такой пользователь мыслит иначе: «Странно... Перед запуском программы было доступно 1000 Кб оперативки. Я запустил программу, посмотрел в менеджере задач - программа потребляет 200 Кб. Посмотрел доступную оперативную память - стало 500 Кб. Куда подевались остальные 300 Кб?»
  Такая закономерность наблюдается практически со всеми программами. Что-то явно не учитывается, но что именно?
  А не учитывается то, что при запуске программа и дополнительные модули к ней загружаются в память. То есть, чтобы получить реальный размер памяти, потребляемой программой, к тому, что показывают менеджеры задач, нужно прибавить как минимум размер исполняемого файла. А совсем правильно будет - учесть динамические библиотеки (dll), которые загружает программа, а также дополнительные исполняемые файлы, которые могут не отображаться в менеджере задач, но тем не менее запускаются и используются. Учитывая все это, можно высчитать верный объем потребляемой памяти.
  Особенно катастрофическая ситуация наблюдается с программами на Java. Этим приложениям нужно много оперативной памяти, всем без исключения. И часто бывают ситуации, когда количество доступной памяти приближается к нулю, а программы выгружаются из-за недостатка оперативки. Менеджер задач при этом показывает, что запущенное Java-приложение потребляет всего-то 45 Кб.
  Оказывается, совершенно не учитывается память, потребляемая виртуальной Java-машиной. Она требует не менее 500 Кб, даже для самого невинного калькулятора. Может ли пользователь узнать реальную или хотя бы похожую на правду цифру?
  Неудобно себя рекламировать в общеобразовательной статье. Однако это реально, если использовать мою программу Jbak TaskMan. В информации о задаче и на инфо-панели есть значение «Общая память» - это более правдивая цифра (не скажу, что всегда на 100% точная, но близкая).
  Все эти рассуждения по поводу потребляемой памяти в S60 3rd разбиваются о скалу, возведенную разработчиками Symbian 9. Здесь невозможно узнать размер потребляемой памяти ни точно, ни приблизительно, ни вообще хоть как-то. Единственное, на что становится годна утилита определения памяти в менеджере задач - вычислить, сколько занимает в ОЗУ сам менеджер задач. Например, об упомянутом выше X-Plore можно узнать, что его исполняемый файл ориентировочно занимает в памяти 3,5 Кб - судите сами, насколько полезна вам эта цифра. Мы пишем «ориентировочно» потому, что учитывается лишь первый запущенный модуль программы. Но ведь модулей у программы может быть несколько...

4

Полная информация о памяти

 

В природе это встречается крайне редко. Из примеров программ - разве что Unreal Device Manager.
  И выглядит это все весьма скромно - такой себе незначительный инструмент под непонятным даже продвинутому пользователю названием - Chunks.
  Смысл такой: если в Symbian нужно где-то выделить память под программу - для этого выделяется блок памяти, имеющий уникальное имя. Если найти все блоки в системе и показать их имя и размер - получится полная схема распределения памяти.
  Все оно так, но:
  1. Имена четки и точны для программиста. Для рядового пользователя они кажутся чем-то страшным, и он стремится сразу же эту самую схему закрыть, пока в телефоне ничего не сломалось.
  2. Блоков памяти, как правило, не одна сотня, просмотреть их хватит терпения разве что у разработчика системных утилит.
  Увидеть все это можно и в моей программе, нажав в главном окне ABC+
. Действительно, жутко выглядит. В общем, некрасиво и непонятно. Да, и главное: под Symbian 9 найти все блоки памяти можно, а узнать их размеры - нельзя. Так что пользователи S60 3rd, в отличие от S60 1st и 2nd, не имеют вообще никакой возможности наверняка узнать размер потребляемой приложениями ОЗУ.

5

ОПЕРАТИВНАЯ ПАМЯТЬ И МНОГОЗАДАЧНОСТЬ
  Symbian - многозадачная ОС. Сколько бы памяти в телефоне ни было - хочется еще больше. На древнем Nokia 3650 я радовался, если удавалось запустить одновременно браузер Opera и StIcq. Но теперь раздражает, когда на N-серии не получается запустить одновременно браузер, почтовик, аську, книгочиталку и еще несколько программ. Такая ситуация будет всегда - человек быстро привыкает к хорошему. Посему необходимость в оптимизации ОЗУ всегда будет актуальной.
  При нехватке оперативной памяти ОС начинает выгрузку программ. Приоритет следующий:
  1. Приложение, с которым работает пользователь (еще называется «Приложение в фокусе»).
  2. Приложения с атрибутом «системное».
  3. Приложение, запущенное последним.
  4. Все прочие приложения.
  Выгрузка начинается с приложений 4 пункта - и, если памяти по-прежнему не хватает, вверх по списку.
  После выгрузки программы вся занимаемая ею память должна очиститься. Пользователи S60 3rd уже обратили внимание, что на их операционной системе это не всегда так. Запустив множество программ и закрыв их, довольно редко можно прийти к значению доступной памяти, которое было при старте. Иногда это частично лечится перепрошивкой смартфона, но смартфоны, начисто лишенные этой неприятности, мне не попадались. В любом случае, семь бед - один ресет, благо программы, умеющей перезагружать телефон, нет только у ленивого. По крайней мере, вытаскивать аккумулятор все умеют...

  ДИСК В ОПЕРАТИВНОЙ ПАМЯТИ
  Диск D: в системе - это диск в оперативной памяти (RAM-Drive). Работает он гораздо быстрее, чем все прочие диски, обладает теми же свойствами, что и прочие дисковые накопители.
  Обычно на таком диске создаются небольшие файлы, с которыми нужно очень быстро работать. Например, файл буфера обмена. При перезагрузке или выключении смартфона данные с этого диска исчезают.

6

СЖАТИЕ ПАМЯТИ
  Предположим, программе нужно выделить для каких-то своих данных 200 Кб памяти. Программа их выделила, а затем, когда эти данные стали ненужными, - очистила. Потом вся эта операция повторилась.
  Если понаблюдать за изменениями размера памяти, потребляемой программой, увидим:
  1. После выделения 200 Кб - используемый объем памяти вырос на 200 Кб.
  2. После очистки - ничего не изменилось. Как будто ничего и не очистилось.
  3. После повторного выделения памяти - размер не увеличился. После очистки - не уменьшился.
  Теперь предположим, что программа выполняет какую-то другую операцию, для которой нужно выделить 100 Кб. Опять же, выделили, очистили - размер все тот же. Что происходит? Память вроде течет, а вроде и не течет...
  На самом деле, операционная система отлично знает про пустующие после очистки 200 Кб, но не торопится их добавлять в доступную память. Сделано это и ради скорости, и ради энергосбережения. Заставить систему силой отобрать эти 200 Кб у программы и положить их в доступную память можно. Это и называется сжатием памяти (compress memory). Такая функция есть во многих менеджерах задач.

  В принципе, это косметика - улучшаются лишь цифры. Но есть программы, которые попросту не запустятся, если доступной памяти меньше, чем требуется. Вот для таких случаев полезно сжать память. Хорошо это проделать, например, после того, как закрыли браузер, особенно Opera.
  У читателя могло сложиться мнение, что сжимать память вредно, раз от этого увеличивается энергопотребление и снижается скорость. Если будете время от времени сжимать память вручную - вреда от этого не будет. И, наверное, если это будет делать какая-то программа каждые 5 секунд - тоже. Но если так будет делать система при каждой операции с памятью - плохо.
  Кстати, для сжатия памяти существует одна-единственная функция, поэтому невозможно такое, что одна программа сжимает лучше, а другая хуже. Используйте любую программу с функцией сжатия - эффект будет один и тот же.
  Вниманию владельцев аппаратов на Symbian 9 - как и в предыдущих пунктах, порадовать вас нечем. Приложения умеют сжимать лишь тот диапазон памяти, что используют сами. Кроме того, если программа, судя по ее собственным цифрам, очень хорошо сжимает память - это означает, что она либо врет, либо допускает большой перерасход памяти, которую должна была сжимать автоматически. Как правило, программы, в которых есть функция сжатия, освобождают совсем мало.
  Подводим итог - продвинутые аппараты на S60 3rd обладают достойным объемом памяти, но подходить к запуску сразу нескольких «тяжелых» приложений стоит лишь правильно рассчитав возможности аппарата. И помните, что единственный способ привести «объевшийся» Symbian 9 смартфон в чувство - перезагрузка.


Вы здесь » От смартфона к КПК » Series 60 » ОЗУ в смартфонах под управлением Symbian


Рейтинг форумов | Создать форум бесплатно