| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 18:57:30
|
Beynner
Entusiasta Java
![[Avatar]](/images/avatar/adf7e293599134777339fdc40ddfa818.png)
Membro desde: 27/06/2005 13:35:28
Mensagens: 18
Localização: Asa Norte - DF
Offline
|
"The code of construtor teste() is exceeding the 65535 bytes limit"
Estou fazendo um projeto com muitos calculos. Estava usando 200 arrays (com 50 variáveis cada um) e compilava de boa. Quando passei a usar 250 arrays já deu esse erro e meu objetivo é chegar a 1000 arrays. Alguém sabe me dizer que limite é esse?
Eu fiz alguns testes e até 211 arrays ele aceita, com 212 já era
This message was edited 1 time. Last update was at 11/12/2007 19:01:19
|
by Beynner |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 19:01:25
|
kaique
GUJ Ranger
![[Avatar]](/images/avatar/60bb8062ea8e0c7ff17bb2e484cd223a.png)
Membro desde: 10/04/2006 07:06:06
Mensagens: 911
Localização: Fortaleza-CE
Offline
|
Cara, eu programo em superWaba, e ele também tem esse tipo de problema. No caso dele, a resposta é que a sua VM só suporta objetos em memória até esse limite que você especificou, passando disso dá "pau" na VM. Agora, se você está rodando isso numa VM Java, nunca vi isso acontecer. Mas tenta ver se tem algo relacionado com o que acontece com o Superwaba...pelo menos é uma pista...
[]'s.
|
/**
*
* Carlos Henrique
* carlosce@gmail.com
* kaiquece@hotmail.com
*
* Sun Certified Programmer for the Java 2 Platform, SE 5.0
* Sun Certified Web Component Developer for J2EE 1.4
* Sun Certified Bussiness Component Developer for J2EE 1.3
*
*/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 19:02:43
|
vanzella
JavaEvangelist
![[Avatar]](/images/avatar/44119006254708ef096f25a96700dfb1.jpg)
Membro desde: 05/01/2007 18:45:15
Mensagens: 381
Localização: Cuiaba - MT
Offline
|
posta o codigo ai veio
|
Sun Certified Java Programmer 5.0
"Se você não esta confuso, não esta prestando atenção!" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 19:21:08
|
peczenyj
Moderador
![[Avatar]](/images/avatar/299dc35e747eb77177d9cea10a802da2.jpg)
Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline
|
quantas linhas tem o seu arquivo .java?
Eu imagino que deve passar das 350...
This message was edited 1 time. Last update was at 11/12/2007 19:21:28
|
http://pacman.blog.br
'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.' |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 19:54:39
|
javapablo
HelloWorld
Membro desde: 04/12/2006 11:27:37
Mensagens: 12
Offline
|
Não sei se isso ajuda, mais aí vai.
Tem um post do daltoncamargo referente a setar memória máxima e mínima de um sistema:
http://www.javafree.org/javabb/viewtopic.jbb?t=839
|
==================================
"No início, Deus criou o céu e a Terra. Mentira! Na verdade, no início Deus criou Java. Onde acha que ele programou o mundo?" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 23:12:22
|
Beynner
Entusiasta Java
![[Avatar]](/images/avatar/adf7e293599134777339fdc40ddfa818.png)
Membro desde: 27/06/2005 13:35:28
Mensagens: 18
Localização: Asa Norte - DF
Offline
|
kaique wrote:Cara, eu programo em superWaba, e ele também tem esse tipo de problema. No caso dele, a resposta é que a sua VM só suporta objetos em memória até esse limite que você especificou, passando disso dá "pau" na VM. Agora, se você está rodando isso numa VM Java, nunca vi isso acontecer. Mas tenta ver se tem algo relacionado com o que acontece com o Superwaba...pelo menos é uma pista...
[]'s.
Uso a JVM. Valeu pela dica, vou dar uma pesquisada pra ver. Mas acho que vou colocar essas informações no banco, creio que não dá pau. Estou com a classe sobrecarregada.
|
by Beynner |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 23:17:53
|
Beynner
Entusiasta Java
![[Avatar]](/images/avatar/adf7e293599134777339fdc40ddfa818.png)
Membro desde: 27/06/2005 13:35:28
Mensagens: 18
Localização: Asa Norte - DF
Offline
|
vanzella wrote:posta o codigo ai veio
putz... criei uma classe somente para declarar as variáveis(e são muitas). Creio que não tem como postar isso tudo.
|
by Beynner |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2007 23:30:23
|
Beynner
Entusiasta Java
![[Avatar]](/images/avatar/adf7e293599134777339fdc40ddfa818.png)
Membro desde: 27/06/2005 13:35:28
Mensagens: 18
Localização: Asa Norte - DF
Offline
|
peczenyj wrote:quantas linhas tem o seu arquivo .java?
Eu imagino que deve passar das 350... 
Quando eu uso os 211 arrays que compila normal, uso 242 linhas, mas quando acrescento mais um array da erro. Se não colocar array e acrescentar mais linhas com outros codigos ele funciona. O problemas está nesses arrays(creio eu).
Será que o problema acaba se colocar tudo isso no banco?
VLW
|
by Beynner |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/12/2007 10:24:20
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Beynner wrote:"The code of construtor teste() is exceeding the 65535 bytes limit"
Estou fazendo um projeto com muitos calculos. Estava usando 200 arrays (com 50 variáveis cada um) e compilava de boa. Quando passei a usar 250 arrays já deu esse erro e meu objetivo é chegar a 1000 arrays. Alguém sabe me dizer que limite é esse?
Eu fiz alguns testes e até 211 arrays ele aceita, com 212 já era
O que o compilador está lhe avisando é que um limite que existe no Java, referente ao tamanho de um .class, foi excedido.
Isso ocorreu porque você está inicializando seus dados dentro do seu programa, em vez de fazê-lo lendo de um arquivo externo.
É que a definição da JVM é burra o suficiente para não aceitar arrays inicializados com constantes.
- Espera aí, mas isto o compilador aceita direitinho!
O que o compilador faz é o seguinte: ele pega o seu construtor sem parâmetros e gera código que é equivalente ao seguinte, antes de todos os seus comandos:
Como você viu, é um bocadinho estúpido.
Não há na JVM um jeito de especificar, dentro do .class, um bloco inteiro de constantes que evite essa geração desse código boboca que você viu. É por isso que se você declarar arrays com inicializadores muito grandes o tal limite é estourado rapidamente.
Então para evitar os tais problemas de geração de código, em vez de meter os dados dentro do seu código, leia-os a partir de um arquivo qualquer.
|
|
|
|
 |
|
|