История изменений
Исправление
gh0stwizard,
(текущая версия)
:
то есть, если я пишу что-нибудь типа new Array(1,2,3), выделяется памяти больше чем нужно для этого массива?
В каком ЯП? В языках, где данные представляются в виде объектов (ява скажем), естественно, кроме самих данных будет создана структура я.объект, чтобы ты мог использовать методы вроде asString(), asBytes() и т.п. (примеры из вакуума). Тем не менее это все немного отдаленно сказано, т.к. JVM может содержать оптимизации специально для таких простых случаев. Принцип тем не менее остается в силе: за плюшки ЯП тебе придется платить памятью и/или процесорным временем. GC в плюшки ЯП не входит.
А как же он определяет, сколько памяти надо выделить?
Опять же, зависит от ЯП и может он в типизацию или не может. Если может, то выделит malloc(3 * sizeof(int))
. А может оптимизировать, считая себя умнее тебя, и сделать так: malloc(8 * sizeof(int))
.
Исправление
gh0stwizard,
:
то есть, если я пишу что-нибудь типа new Array(1,2,3), выделяется памяти больше чем нужно для этого массива?
В каком ЯП? В языках, где данные представляются в виде объектов (ява скажем), естественно, кроме самих данных будет создана структура я.объект, чтобы ты мог использовать методы вроде asString(), asBytes() и т.п. (примеры из вакуума). Тем не менее это все немного отдаленно сказано, т.к. JVM может содержать оптимизации специально для таких простых случаев. Принцип тем не менее остается в силе: за плюшки ЯП тебе придется платить памятью и/или процесорным временем. GC в плюшки ЯП не входит.
А как же он определяет, сколько памяти надо выделить?
Опять же, зависит от ЯП и может он в типизацию или не может. Если может, то выделит malloc(3 * sizeof(int))
.
Исправление
gh0stwizard,
:
то есть, если я пишу что-нибудь типа new Array(1,2,3), выделяется памяти больше чем нужно для этого массива?
В каком ЯП? В языках, где данные представляются в виде объектов (ява скажем), естественно, кроме самих данных будет создана структура я.объект, чтобы ты мог использовать методы вроде asString(), asBytes() и т.п. (примеры из вакуума). Тем не менее это все немного отдаленно сказано, т.к. JVM может содержать оптимизации специально для таких простых случаев. Принцип тем не менее остается в силе: за плюшки ЯП тебе придется платить памятью и/или процесорным временем.
Исходная версия
gh0stwizard,
:
то есть, если я пишу что-нибудь типа new Array(1,2,3), выделяется памяти больше чем нужно для этого массива?
В каком ЯП? В языках, где данные представляются в виде объектов (ява скажем), естественно, кроме самих данных будет создана структура я.объект, чтобы ты мог использовать методы вроде asString(), asBytes() и т.п. (примеры из вакуума).