LINUX.ORG.RU

История изменений

Исправление 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() и т.п. (примеры из вакуума).