19.02.2012, 20:27
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Mахmахmахimus,
Так это я тебя выделяю среди всех, ага.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
19.02.2012, 22:45
|
Аспирант
|
|
Регистрация: 10.04.2010
Сообщений: 92
|
|
Сообщение от Mахmахmахimus
|
Нельзя, js не предоставляет API для работы с памятью он делает это автоматически.
Вот норм ответ.
|
Да, плюсую
|
|
19.02.2012, 22:49
|
Аспирант
|
|
Регистрация: 10.04.2010
Сообщений: 92
|
|
Сообщение от Nekromancer
|
jsuse,
Переменная ничего не занимает в памяти.
|
Но это же не так. Когда я объявляю вот так переменную,
var bar = "";
я резервирую место в памяти. Вот одно это объявление занимает три или четыре байта в памяти, я не помню уже сколько. А вы говорите, что ничего не занимает.
|
|
19.02.2012, 23:06
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
jsuse,
В памяти лежит не переменная, а строка, если уж абстрактно брать.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
20.02.2012, 12:09
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
переменная указывающая на любой объект занимает 4-8 байт, в зависимости от системы. Остальное считаем по просту:
текстовые данные, хранят двумя видами, первые 2-4 байта размер строки, далее строка. Либо строка и вконце строки нулевой символ указывающий на конец строки. Числовые переменные зависит от типа числа, в JS везде помойму сплошной FLOAT 8-16 байт, булевые значения 1 байт.
Примерно все так... хотя по JS я особо не интересовался, но если смотреть на более низком уровне то где-то так.
|
|
20.02.2012, 12:47
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
jsuse, не скажешь зачем тебе это узнавать? Может есть более лучший способ решить проблему, если она есть конечно.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
15.04.2012, 00:59
|
|
''
|
|
Регистрация: 11.12.2011
Сообщений: 636
|
|
Сообщение от devote
|
булевые значения 1 байт.
|
Всю жизнь думал, что 1 бит
|
|
15.04.2012, 17:45
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Насколько я понимаю, переменная является лишь одним из способов работы с памятью, в которой собственно и хранятся данные (абстрактно, переменная - это именованный контейнер для хранения данных).
Для каждого языка программирования определён список простых типов данных и размер этих типов (то какой размер памяти будут занимать значения этих типов).
Размер переменной, хранящей в конкретный момент времени данные простого типа (например, число) как раз равен размеру типа этих данных (обычно это подразумевают под размером переменной с простым значением).
Для сложных типов данных (например, объектов) часто используют ссылочную организацию: представляющая сложные данные переменная хранит лишь ссылку на эти данные, а о том как размещаются в памяти сами данные (например, свойства и методы объекта) и то, каким образом разрешать ссылки, заботится интерпретатор.
Размер таких переменных равен размеру ссылочного типа данных, представляющих в языке ссылки (сколько памяти отводится под ссылки в javascript точно не знаю, но обычно достаточно 4 байт (2^32 - это более 4*10^9 возможных адресов)).
Так как размер переменных с такими данными - это всего лишь размер ссылки, то для таких типов данных обычно существуют функции получения размера самих структур.
Так javascript - это не универсальный (как, например, С++, Delphi и т.п.), а специализированный язык, то и средств для реализации универсальности в нём не так много (хотя в последующих версиях языка ничто не мешает их добавить).
|
|
16.04.2012, 16:15
|
|
''
|
|
Регистрация: 11.12.2011
Сообщений: 636
|
|
Сообщение от bes
|
средств для реализации универсальности
|
ЧТо вы понимаете под универсальностью?
|
|
|
|