>> VIRT вообще
> Не газифицируй попусту, RES достаточно точно характеризует текущее потребление. Я же специально "VIRT вообще" выделил, а ты завелся ...
> p.s. Как прогер прекрасно понимаю, что VIRT тоже достаточно интересный параметр, показывающий
> сколько прога СОБИРАЕТСЯ попросить рамы.
Например, можно застолбить адресное пространство для собственных аллокаторов, чтобы не дергаться потом, когда прижмет? Нет, оно конечно скорее актуально для 32-битного адресного пространства, но …
Опять же, есть нюансики, когда нужно зарезервировать большой кусок целиком:
https://github.com/v8/v8/blob/a389f16157b927e0e2ddd385c63d4a...
> // All heap objects containing executable code (code objects) must be allocated
> // from a 2 GB range of memory, so that they can call each other using 32-bit
> // displacements. This happens automatically on 32-bit platforms, where 32-bit
https://github.com/v8/v8/blob/6f0556e8c1544fc95f9f57a21a6112...
if (requested == 0) {
// When a target requires the code range feature, we put all code objects
// in a kMaximalCodeRangeSize range of virtual address space, so that
// they can call each other with near calls.
if (kRequiresCodeRange) {
requested = kMaximalCodeRangeSize;
} else {
return true;
}
}
// To use pseudo-relative jumps such as j/jal instructions which have 28-bit
// encoded immediate, the addresses have to be in range of 256MB aligned
// region. Used only for large object space.
const size_t kMaximalCodeRangeSize = 256 * MB;