Подтвердить что ты не робот

Как вы называете переменную, какое влияние оказывает на использование памяти в приложении?

Объявляя имя переменной, сколько (если вообще) влияет на длину ее имени на общую память приложения? Есть ли максимальная длина? Или мы можем подробно рассказать о наших переменных (и экземплярах) столько, сколько хотим?

4b9b3361

Ответ 1

На самом деле это зависит от языка.

Если вы используете С++ или C, это не влияет.

Если вы используете интерпретируемый язык, вы передаете исходный код, поэтому он может иметь сильное влияние.

Если вы используете скомпилированный язык, который компилируется на промежуточный язык, такой как Java или любой из языков .NET, то обычно имена переменных, имена классов, имена методов и т.д. являются частью IL. Использование более длинных имен методов будет иметь последствия. Однако, если вы позже пройдете через обфускатор, это исчезнет, ​​так как обфускатор переименует все (как правило) очень короткие имена. Вот почему обфускация часто приводит к снижению производительности.

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

Ответ 2

Это не влияет на скомпилированный язык.

Ответ 3

В скомпилированных языках почти наверняка нет; все становится символом в таблице символов. В интерпретируемых языках ответ также отсутствует, с несколькими чрезвычайно редкими исключениями (в некоторых более старых версиях Python, например, была бы разница).

Ответ 4

MSVС++ усекает имена переменных до 255 символов. Длина имени переменной не влияет на размер скомпилированного кода.

Ответ 5

Как указано другими, имена переменных исчезают на скомпилированных языках. Я считаю, что имена локальных переменных в .Net могут быть отброшены. Но, вообще говоря, даже на интерпретируемом языке потребление памяти имен переменных незначительно, особенно в свете преимуществ хороших имен переменных.

Ответ 6

На самом деле в ASP.NET длинные имена переменных для элементов управления и мастер-страниц добавляют к размеру сгенерированного HTML. Это добавит некоторую несущественную дополнительную память для буферизации выходного потока, но эффект будет наиболее заметен в дополнительных нескольких сотнях байт, отправляемых по сети.

Ответ 7

В Python имена, как представляется, собираются в несколько простых таблиц; каждое имя появляется ровно один раз в каждом объекте кода. Имена не влияют на производительность.

В статистических целях я рассмотрел 20-строчную функцию, которая была решением проблемы Project Euler 15. Эта функция создала 292-байтовый объект кода. Он использовал 7 различных имен в таблице имен. Вам придется использовать 41-значные имена переменных, чтобы удвоить размер файла байтового кода.

Это будет единственное влияние - безумно большие имена могут замедлить время загрузки для вашего модуля.