Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Программа, запущенная на 32-битном процессоре может адресовать не больше 4GB адресного пространства.
Обычно, счетчик ссылок не хранится в самом объекте. Можно было бы хранить счетчик ссылок в самом объекте, но это заняло бы слишком много места. Это не так важно сейчас, но тогда, давно, это было весьма существенно.
4 Гигабайта на метаинформацию о классах не будет хватать? Думаю очччень нескоро.
AMD64 — приятное добавление от Apple.
Программа, запущенная на 32-битном процессоре может адресовать не больше 4GB адресного пространства.
Количество бит, реально задействованных в указателе не связано с битностью процессора. Процессоры ARM использует от 26 до 40 бит, и это число может изменяться в отрыве от битности процессора.
Битность — это тот объём информации, который процессор может передавать или получать за один машинный такт.
Вот именно :) И этот цикл выполняется гораздо — гораздо дольше
К тому же никакие кеши не помогут при обращении к некоторым данным (volatile С/C++ переменные, если говорить о языках высокого уровня), для которых обязательно обращение к ячейкам конечного ОЗУ
volatile int i;
int f(void)
{
return i;
}
gcc -S test.c
cat test.s
.file "test.c"
.comm i,4,4
.text
.globl f
.type f, @function
f:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movl i(%rip), %eax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size f, .-f
.ident "GCC: (GNU) 4.7.2 20121109 (Red Hat 4.7.2-8)"
.section .note.GNU-stack,"",@progbits
При этом у процессора были 16-ти разрядные регистры
Подразумевается в первую очередь работа с памятью, а не портами
Во-первых, отмечу название: официального название от ARM — «AArch64», однако это — глупое название, печатать которое меня раздражает. Apple называет архитектуру ARM64 и я буду называть также.
Можно какие-нибудь пруфы относительно того, что эпл разрабатывает свое ядро?
Ну вот например в Cortex A5 NEON это тоже опция, и это правильно, потому, что SIMD не всегда нужен, или его заменяет нормальный GPU.
На рынке сейчас, по сути только 2 компании разрабатывающие свои микраорхитектуры на базе ISA от ARM — Apple и Qualcomm
Можно какие-нибудь пруфы относительно того, что эпл разрабатывает свое ядро?
AArch64 это ARMv8? То есть обычный Cortex A53/57?
+ (id)alloc
{
Class *newInstance;
newInstance = (Class *)calloc(1, class_getInstanceSize(self));
*newInstance = self;
return (id)newInstance;
}
*newInstance = self;
*newInstance = self;
Если объект не обладает C++-деструктором (который вызывается при dealloc), его тоже не нужно вызывать.
ARM64 и Ты