Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    OutOfMemoryError: Java heap space

    Devo necessariamente aumentare la memoria messa a disposizione per Eclipse, per la realizzazione di un algoritmo di fattorizzazione, ma ho delle difficoltà.
    Premetto che sto lavorando su una macchina quadcore con 4GB di RAM, quindi memoria abbondanza!
    Ho provato a modificare la memoria a disposizione con il seguente comando eseguito da DOS:

    eclipse.exe -vmargs -Xms512M -Xmx1536M

    la cui esecuzione mi ha visualizzato la seguente immagine:



    Poi ho riprovato ad eseguire l'algoritmo, ma mi continua a visualizzare il seguente messaggio di errore.

    codice:
    16524110286904661568007083959884690664047722193998912622251970793644717771
    Bits: 244, Digits: 74
    Smoothness Bounds: 752500
    
    Phase 1 Precomputations..
    Phase 2 Precomputations..
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at factoring.ECM.PrimeSiever.sieve(PrimeSiever.java:18)
    
        at factoring.ECM.PrimeSiever.sieve(PrimeSiever.java:14)
        at factoring.ECM.ECM.factor(ECM.java:41)
        at factoring.ECM.Factorer.main(Factorer.java:39)
    Giuseppe SPECCHIO

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Qui al reparto di sviluppo java siamo in due a pensare che forse stai allocando la memoria in modo errato da qualche parte.

    Sei sicuro che occorrano 4giga di ram per un algoritmo di fattorizzazione? Non sono un po' tantini?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Originariamente inviato da Pastore12
    Qui al reparto di sviluppo java siamo in due a pensare che forse stai allocando la memoria in modo errato da qualche parte.

    Sei sicuro che occorrano 4giga di ram per un algoritmo di fattorizzazione? Non sono un po' tantini?
    Probabilmente mi sono espresso male!
    Ho detto che la mia macchina ha 4GB di RAM, e ne vorrei usare al max 1536MB per un algoritmo di fattorizzazione che sto implementando, il quale quando si trova a gestire numeri con una quantità di cifre superiore alle 71 cifre mi da quell'errore di OutOfMemoryError: Java heap space
    .
    Spero di essere stato chiaro ora!
    Giuseppe SPECCHIO

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    12345678901234567890123456789012345678901234567890 123456789012345678901

    Numeri di 70 cifre sono belli grossi...

    Con google ho trovato questo: http://dev.eclipse.org/newslists/new.../msg08251.html

    Mi sembra coincida con il tuo problema. Se hai tempo prova a dargli un'occhiata
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Ho provato a cambiare le impostazioni nella seguente maniera

    ma ho ricevuto il seguente messaggio di errore
    Giuseppe SPECCHIO

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Non ho idea se le limitazioni le pone windows o eclipse. Puoi provare a ridurre la ram fino a quando non trovi un valore valido per il launcher. Però così non hai garanzie di arrivare a un livello accettabile...

    Ma per fattorizzare un numero non si fa una sequenza di divisioni? Credevo che il problema della fattorizzazione fosse più di tempo che di memoria :master:

    oh.. non voglio mica mettere in dubbio quello che hai fatto! E' un mio sconcerto personale.
    Però, io più di questo...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Ciao,
    una piccola ma importante precisazione per una limitazione Windows x86 una JVM non puo' allocare piu' di 1300MB circa, che tra l'altro è il massimo che riesce ad usare.

    Se stai usando JDK6 avvia VisualVM (che trovi dentro la bin del jdk) ti mostra lo status, occupazione memoria e via dicendo. (nota ne esistono anche di piu' sofisticati per fare questo lavoro)

    Alfredo

  8. #8
    Originariamente inviato da FreeManX
    Ciao,
    una piccola ma importante precisazione per una limitazione Windows x86 una JVM non puo' allocare piu' di 1300MB circa, che tra l'altro è il massimo che riesce ad usare.

    Se stai usando JDK6 avvia VisualVM (che trovi dentro la bin del jdk) ti mostra lo status, occupazione memoria e via dicendo. (nota ne esistono anche di piu' sofisticati per fare questo lavoro)

    Alfredo
    Alfredo 6 stato grande, grazie x la dritta! ... sperando che il prof. di Crittografia sia comprensivo ;-)
    Giuseppe SPECCHIO

  9. #9
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    sperando che il prof. di Crittografia sia comprensivo
    Dipende da che razza di algoritmo stai cercando di implementare..
    Non è che potresti sintetizzarne lo pseudocodice?
    Non mi era mai capitato di trattare un problema che richede tanta ram!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  10. #10
    Originariamente inviato da Pastore12
    Dipende da che razza di algoritmo stai cercando di implementare..
    Non è che potresti sintetizzarne lo pseudocodice?
    Non mi era mai capitato di trattare un problema che richede tanta ram!
    Sto implementanto la versione revisionata dell'Elliptic Curve Method di Lenstra. Questi si bloccava sulla seguente istruzione:

    codice:
    primes = new int[(int)(Math.ceil(upperCoefficient * upper / Math.log(upper)) - Math.ceil(1.1 * lower / Math.log(lower)))];
    Comunque, grazie ancora x l'interesse.
    Giuseppe SPECCHIO

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.