По разным причинам я пришел к выводу, что создание пользовательской сборки JVM может быть самым легким вариантом для того, чего я пытаюсь достичь, поскольку существует слишком много вещей, которые действительно сильно влияют на производительность, если сделать иначе.
Итак, я настроил и запустил среду, изменил некоторые простые вещи, чтобы сгенерировать обратные вызовы для того, что мне нужно, поиграл с некоторыми внутренностями, пока что все хорошо.
Что я хотел бы знать, так это то, что эксперты JVM здесь думают о возможности создания пользовательской виртуальной машины с большим заголовком объекта (например, на 8 байт больше). markOop.hpp
довольно неплохо объясняет содержание слова-метки для различных существующих разновидностей (32 бита, 64 бита, 64 бита со сжатыми ой), и мне было интересно, как трудно будет расширить заголовок, чтобы я мог добавить немного дополнительного информация об объектах (без пометки нет, см. мой пост здесь ).
Так что, прежде чем углубляться в это, я надеялся, что кто-то, имеющий опыт в этом, может дать некоторую раннюю обратную связь. Например, это «самоубийственная миссия», потому что во всем мире слишком много мест, где существуют жестко закодированные предположения относительно размера заголовка и смещений? Или все это довольно централизовано и может быть выполнено с разумными усилиями, не рискуя все сломать? Любой указатель на то, что может нуждаться в особом уходе и какие последствия это может иметь (помимо очень очевидного; больше потребления памяти)?