2013-09-05 2 views
0

Там есть способ, но «простой» способ работы моей программы - вложить много текста в переменные String.Использование больших массивов и памяти

У меня было бы приблизительно 644 объекта, каждый со своей собственной переменной String. Каждая из этих переменных будет содержать приблизительно 9 240 символов (включая пробелы). Это слишком много?

+1

Попробуйте и посмотрите ... – hexafraction

+0

Что значит «слишком много»? 644 * 9240 * 2 - 11,901,120 – CPerkins

+4

Если вы видите три волоса, это слишком много? Это зависит от того, находится ли это на чьей-то голове или в чьей-то миске супа ;-) – dasblinkenlight

ответ

2

В java-символах по умолчанию используется Unicode, поэтому их размер равен 2B. Сейчас:

2B * 9,240 chars = 18480B = ~18KB 

Тогда

18480B * 644 variables = 11901120B = ~11MB 

Общая память, занимаемую всеми String объектов ~ 11MB.

Если у вас нет старой 64MB RAM я думаю, что это приемлемо

+0

Строка Java занимает больше памяти, чем простое количество байтов, взятых содержащимися символами. –

+0

@JunedAhsan Я знаю, это просто пример, даже если они берут 5B вместо 2, это не будет проблемой, так как современные операционные системы имеют как минимум 512 МБ свободного места – BackSlash

1

Простые расчеты показывают, что общее пространство, требуемое для таких объектов будет составлять менее 12 МБ - не большой объем памяти на большинстве современных компьютерных систем, за исключением встроенных платформ Java. Чтобы выполнить вычисления, умножьте количество символов на два (потому что Java char - это 16-разрядное число).

Смежные вопросы