Максимальная память для 64bit Java
каков максимальный объем пространства кучи, который можно выделить для java на 64-битной платформе? Оно неограниченно?
5 ответов
теоретически 264, но могут быть ограничения (очевидно)
по данным этот FAQ он ограничен только памятью и пространством подкачки в локальной системе:
на 64-разрядных виртуальных машинах у вас есть 64 бита адресуемости для работы, в результате чего максимальный размер кучи Java ограничен только объемом физической памяти и пространства подкачки, предоставляемого вашей системой.см. также Почему я не могу получить большую кучу с 32-битным Для JVM?
также имейте в виду, что вам нужно установить максимальную кучу через командную строку. Без команды - Xmx. без него Java использует 64mb + 30% = 83.2 mb в качестве максимальной кучи по умолчанию на 64-битных машинах в соответствии с тем же FAQ.
java -Xmx1000g myClass
отлично работает на моей машине. Но он, похоже, еще не поддерживает модификатор "t", поэтому вы еще не можете указать максимальную память в терабайтах :)
Если бы вы могли сделать каждый атом во Вселенной в байт ОЗУ, вы могли бы выделить его в 64-битном адресном пространстве.
на самом деле, это небольшое преувеличение.
во Вселенной есть 10^80 атомов (согласно WolframAlpha) и 2^64 байта адресного пространства в 64-битной системе, поэтому вы сможете адресовать только 1 из каждых 5x10^60 атомов. Но если у вас есть 18 qintillion байтов ОЗУ, вам, вероятно, понадобится пара квантовых черных дыр для его питания с.
Это, вероятно, зависит от системы, в которой работает ваша виртуальная машина. Если вы используете архитектуру AMD x64, адресное пространство текущих процессоров использует 48 бит, а не 64. Это приводит к теоретическому максимуму примерно 256 ТБ. (См. http://en.wikipedia.org/wiki/X86-64)
Я не специалист в VMs, но любая современная ОС обычно дает столько памяти, сколько есть физическая ОЗУ плюс доступная виртуальная память. наверное вот что такое VM перейдет к вашему приложению в зависимости от его конфигурации.
с недавними VMs от Sun, практически размер предела кучи обычно 512 времен доступная физическая и / или виртуальная память. Даже если теоретический предел намного выше, VM выделит 1 байт для целей maangement для каждых 512 байтов памяти кучи при запуске, поэтому 1 ТБ кучи немедленно потребует 2 ГБ для управления памятью.
в теории его между 2^63
и 2^64
байт.
на практике он ограничен объемом физической памяти и пространства подкачки, доступным на вашем компьютере. А физическая память, в свою очередь, ограничена вашим чипсетом (т. е. количеством адресных контактов на адресной шине физической памяти) и материнской платой (т. е. количеством и размером сокетов DIMM).