LINUX.ORG.RU
ФорумMobile

На современных мобилках нет многозадачности, и вот почему

 , , , ,


0

3

Сабж. Мобилки идут 2-4-6гб ОЗУ. И если взять среднее значение - 4гб, то если попытаться открыть ВКонтактик, ютабчик, фейсбук, инсту одновременно, то это резко начнёт… выгружаться. Оно будет висеть в списке приложений, система пошлёт onLowMemory и onClose, а затем прибьёт приложение, заставив сохранить состояние. Но загрузиться из сохраненного состояние, это не тоже самое что крутить софт постоянно в фоне) Я тут создавал тему про винмобайл недавно(старый винмобайл, который на кпк ещё), там на девайсах 64мб ОЗУ, из них половину кушала файловая система для пользователя(во времена этой винды ОЗУ была дешевле, поэтому дешевле было поставить чуть больше ОЗУ + батарейку, которая питает ОЗУ в случае разряда/отключения основного АКБ). Я открываю местный таск менеджер и… filemanager.exe - 100kb, gwes.exe(оконный менеджер) - 2mb, task manager - тоже пару сотен килобайт. И всё это реально крутится в фоне, и можно легко переключатся между задачами. Я вообще в таскменеджер не лазил и спокойно юзал коммуникатор на протяжении дня. Так куда пропала настоящая многозадачность с точки зрения пользователя?)



Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от interrupted

Её сейчас непонятно кому адресовать вообще.

Более реалистичным выглядит вариант с новой системой на базе урезанного линукса. Или там Embox.

hobbit ★★★★★
()

У Facebook есть Facebook Lite и Instagram Lite, для VK есть Kate Mobile. Их функциональности хватит для работы вполне, на 2 GB ОЗУ на Android Go уже можно пользоваться, в принципе. 4-6 GB RAM хватает тоже. Для остальных соцсетей часто тоже есть lite-версия.

abalompe
()

На современных мобилках есть многозадачность, она разделена на сервисы которые работают в бэкграунде и на активити которые есть UI.

exception13 ★★★★★
()
Ответ на: комментарий от pfg

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

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

damix9 ★★★
()

Я открываю местный таск менеджер и… filemanager.exe - 100kb, gwes.exe(оконный менеджер) - 2mb, task manager - тоже пару сотен килобайт.

Эх...
У WinXP ТМ показывал потребление памяти <100 мб после загрузки и входа юзера.
А щас...😒

Minona ★★☆
()
Ответ на: комментарий от damix9

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

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

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

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

последнее крупное, писанное на ассемблере, по сколь помню был volkov commander. при практических тех же возможностях он, сколь помню, занимал места в 15-20 раз меньше чем norton commander.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 2)
Ответ на: комментарий от pfg

Это самая частая отговорка, которую я слышу, но она не работает.

упрощающая написание программы

Лишние уровни абстракции его не упрощают, а усложняют. Особенно, если речь про веб-фреймворки.

Я немного умею сайты делать. Так вот прочитать-записать куки на React можно так:

let token = this.props.cookies.get(AUTH_COOKIE_NAME);
this.props.cookies.set(AUTH_COOKIE_NAME, token, { path: '/', expires: expireDate });
а можно без React определить такие функции
// This function sets a client-side cookie as above.  Only first 2 parameters are required
// Rest of the parameters are optional. If no szExpires value is set, cookie is a session cookie.
//
// Prototype : setCookie(szName, szValue [,szExpires] [,szPath] [,szDomain] [,bSecure])
//******************************************************************************************


function setCookie(szName, szValue, szExpires, szPath, szDomain, bSecure)
{
 	var szCookieText = 	   escape(szName) + '=' + escape(szValue);
	szCookieText +=	 	   (szExpires ? '; EXPIRES=' + szExpires.toGMTString() : '');
	szCookieText += 	   (szPath ? '; PATH=' + szPath : '');
	szCookieText += 	   (szDomain ? '; DOMAIN=' + szDomain : '');
	szCookieText += 	   (bSecure ? '; SECURE' : '');
	
	document.cookie = szCookieText;
}

//******************************************************************************************
// This functions reads & returns the cookie value of the specified cookie (by cookie name) 
//
// Prototype : getCookie(szName)
//******************************************************************************************

function getCookie(szName)
{
 	var szValue =	  null;
	if(document.cookie)	   //only if exists
	{
       	var arr = 		  document.cookie.split((escape(szName) + '=')); 
       	if(2 <= arr.length)
       	{
           	var arr2 = 	   arr[1].split(';');
       		szValue  = 	   unescape(arr2[0]);
       	}
	}
	return szValue;
}

и

let token = getCookie(AUTH_COOKIE_NAME);
setCookie(AUTH_COOKIE_NAME, token, expireDate, '/');
Даже проще получилось. Я что за второе могу требовать больше денег, чем за первое? Еще один пример У нас решили господдержать отечественный игровой движок! (комментарий)

теперь тебе не надо парится памятью, если прокладка уборщика мусора

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

damix9 ★★★
()

Я считаю, что мобильные ОС допустили большую ошибку, отказавшись от традиционной архитектуры ОС.

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

Мобильные ОС пошли по другому пути. При сворачивании ОС может посылать сигнал завершения работы, а приложение ответственно за то, чтобы сохранить текущее состояние где-то и при следующем запуске восстановить его.

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

Я не понимаю, почему выбрали такой вариант. Сложно представить, что они хотели экономить ресурс флеша. Если это такая проблема, можно было бы специально для свопа поставить вращающийся жёсткий диск. Но думаю, что и ресурса хорошего флеша хватит на расчётный срок службы телефона.

vbr ★★★★
()