{
  "id": 3743395,
  "title": "Project Lilliput: por que os objetos Java estão ficando menores",
  "url": "https://urgent.news/2026/08/27/project-lilliput-por-que-os-objetos-java-estao-ficando-menores",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-27T13:24:18.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/mensonones/project-lilliput-por-que-os-objetos-java-estao-ficando-menores-2c90"
  },
  "original_language": "pt",
  "account": "Para quem programa em Java, é comum escrever partes de código parecidas com `var user = new User ();` - criamos um objeto e ele ocupa apenas o espaço necessário para guardar seus dados. No entanto, isso não é exatamente o que acontece. Cada objeto Java carrega algumas informações adicionais, conhecidas como Object Header. Essa etiqueta, embora normalmente não seja vista, ocupa memória e fornece informações essenciais para a JVM, como o tipo do objeto, dados do Garbage Collector e dados internos para gerenciamento.\n\nO tamanho desse Object Header pode parecer insignificante, mas se multiplicado por milhões de objetos, pode representar uma quantidade significativa de memória - por exemplo, economizando apenas 4 bytes por objeto em uma aplicação que cria 10 milhões de objetos resultaria em cerca de 40 MB. O Project Lilliput, uma iniciativa do OpenJDK, visa reduzir o tamanho dessas estruturas internas da JVM. Uma das mudanças principais é diminuir o Object Header de 12 ou 16 bytes para apenas 8 bytes em JVMs de 64 bits.\n\nEsse ajuste pode melhorar o desempenho do Java de várias maneiras. Menos memória não apenas significa menos RAM, mas também pode melhorar o uso dos caches da CPU e reduzir a quantidade de trabalho realizado pelo Garbage Collector. Testes realizados pelo OpenJDK mostraram ganhos significativos, como 22% menos uso de heap, 8% menos CPU e até 15% menos ciclos de Garbage Collection. O desenvolvedor não precisa fazer nenhuma alteração em suas classes para obter esses benefícios, pois essa otimização é feita dentro da própria JVM.\n\nO Project Lilliput está em uma fase inicial, com o recurso experimental sendo introduzido em Java 24 através do JEP 450. Agora integrado como uma feature oficial na HotSpot (já disponível na Java 25, embora ainda desabilitada por padrão), o próximo passo é considerar torná-lo o layout padrão de objetos. Esse trabalho já foi proposto como \"Compact Object Headers by Default\", mas ainda está em Draft. A história de por que os objetos Java estão ficando menores demonstra que às vezes, mudanças aparentemente pequenas em nível de baixo nível podem ter impactos significativos no desempenho de aplicações, economizando memória que, multiplicada por milhões de objetos, pode fazer toda a diferença.",
  "summary": "Se você programa em Java, provavelmente já escreveu algo assim milhares de vezes: var user = new User (); Parece simples: criamos um objeto e ele ocupa na memória apenas o espaço necessário para guardar seus dados. Mas não é bem assim. Todo objeto tem uma pequena \"mochila\" Além dos dados que você colocou nele, cada objeto Java carrega algumas informações extras usadas internamente pela JVM. É o…",
  "key_points": [
    "Project Lilliput aims to reduce Java object header size",
    "Object Header size reduced from 12/16 bytes to 8 bytes in 64-bit JVMs",
    "Performance improvements include 22% less heap usage and 15% fewer GC cycles"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}