Хах, а где Box хранится? напрямую в Jemalloc-е вроде бы(хотя можно кстати это подправить, ведь тип и его размер нам известны). Те Vec<Box<T» это массив из ссылок, имеющий длину 44 байта, но юзающий блок кучи в 64, и куча T, имеющих длину 33, но юзающих блоки в 64. И вот, память куда-то делась? А если запишешь Vec<T>, то получишь один сегмент длиной 44*33=1452, который будет юзать сегмент длиною 2048
а вот представим, что один мой друг некогда написал такой кот https://gist.github.com/Odomontois/f1ed29ea121564aa009facd0229c5fec но написав его он увидел ,что джавовый аналогичный всё равно гоняет в полтора -два раза быстрее и он такой думает: ЧЯНДТ помогите моему другу, время пошло
а вот представим, что один мой друг некогда написал такой кот https://gist.github.com/Odomontois/f1ed29ea121564aa009facd0229c5fec но написав его он увидел ,что джавовый аналогичный всё равно гоняет в полтора -два раза быстрее и он такой думает: ЧЯНДТ помогите моему другу, время пошло
я не знаю что там, но там очень много вызово clone и там где джавовый код наверняка передавал ссылки на объекты, мне тут недавно объяснили, что клон это когда дипкопи и дорого (на хипе).
Нафига clone в new, в том то и прикол, что если вызываешь clone, то получаешь 2 объекта, для каждого из которых вызываются drop + копирование памяти. clone зло, это же очевидно