Entradas con la etiqueta ‘Out of Memory’

Exception in thread “main” java.lang.OutOfMemoryError: Java heap space

Lunes, 13 de Abril de 2009

Queremos ejecutar una aplicacion de java desde eclipse, pero nos da un mensaje de error conforme la memoria está out of memory.

Uno de los motivos es que por defecto la memoria de la virtual machine dentro de eclipse, está limitada. Para poder aumentar la memoria podemos añadir un parametro opcional dentro del menu-> RUN…

disponemos de la pestaña arguments. Donde tendremos argumentos del programa y argumentos de la VM (Virtual machine)

para indicarle que queremos mas memoria ram utilizamos le comando:

-Xmx400m

esto indica que queremos reservar 400 megabytes de memoria para la vm de java dentro de eclipse. Podemos aumentar este número tanto como nos permita nuestro ordenador, dependiendo de la ramque tengamos instalada. Miramos la foto, que se verá mas claro donde y como poner el parametro para augmnetar la memoria en enclipse, para aplicaciones java.

En mi caso en concreto, el problema deriva de utilizar las clases AIMA para la inteligencia artificial. El heap de memoria por defecto de la mv de java puede ser pequeño  creo que de 64Mb?  para ciertos tamaños de problema, podeis aumentarlo usando el parametro -Xmx<tamaño>

Ademas de este parametro tenemos otros que podemos controlar, como son:

-Xms300m

En la foto de como se cierra eclipse se pueden apreciar algunos de ellos, que podremos usar de la misma manera.:

Error Visual basic 6 Runtime error 7 por culpa de “Microsoft Forms 2.0 Object library” (FM20.DLL)

Lunes, 1 de Septiembre de 2008

Una aplicacion de vb 6 que funcionaba correctamente, me toca reinstalar el windows por uno original y pumm.  La aplicación al iniciar lanza un error 7, memoria insuficiente (Error 7, Memoria insuficiente) o en ingles: "Out of Memory, runtime error 7".

Me he puesto a registar los dll's necesarios para el programa y todos bien.  mediante el comando regsrv32, en este caso:

  • regsvr32 C:\mdu\VBMySQLDirect.dll -> Myslq conector
  • regsvr32 C:\mdu\Mscomctl.ocx
  • regsvr32 C:\mdu\COMCTL32.OCX
  • regsvr32 C:\mdu\FM20.DLL  -> menu desplegables con autocompletado -> EL PROBLEMA!
  • regsvr32 C:\mdu\ImageWeb.ocx -> gif animados

El error seguia... El problema en mi caso, venia por usar un componente en el proyecto del tipo: Microsoft Forms 2.0 Object library", este component contenido en su dll FM20.DLL correctamente en la carpeta del programa y registrado sin problemas, resulta que no es capaz de funcionar sin el OFFICE... Así que el causante de todo esto es un bug de este componente que no es capaz decir nada mas que : "RUNTIME ERROR 7: Out of Memory".

El programa en cuestion usaba este componente para hacer una imitación a un suggest en un combobox. Que ahora he sustituido por una función de autoCompletado sin usar nada mas que cuatro porciones de código:

Visual Basic:
  1. ' Una variable en las declaraciones del formulario que contiene el combo:
  2.  
  3. Private Backspaced as As Boolean
  4.  
  5. 'una funcion que puedes poner en un modulo, o en las declaraciones del form , es la encargada de autocompletar
  6.  
  7. Public Function AutoCompletadoCombo(ctlComboBox As Control)
  8. '--------- &lt;&lt;Called from the _Change event of cboComboBox&gt;&gt; ----------------
  9. ' -- autor: http://vbasic.astalaweb.com/C_ComboBox/1_Combobox.asp -------
  10.  
  11. Dim i%, intSel%  ' % is a "shorthand" for Integers
  12.  
  13. 'If this fires in response to a Backspace or Delete, then
  14. 'Exit the function because then you wouldn't be able to backup:
  15. Select Case (Backspaced Or Len(ctlComboBox .Text) = 0)
  16. Case True: Backspaced = False: Exit Function
  17. End Select
  18.  
  19. With ctlComboBox
  20. 'Run through the available items in a For...Loop and grab
  21. 'the first one that matches the selection:
  22. For i = 0 To .ListCount - 1
  23. If InStr(1, .List(i), .Text, vbTextCompare) = 1 Then
  24. intSel = .SelStart
  25. .Text = .List(i)
  26. .SelStart = intSel
  27. .SelLength = Len(.Text) - intSel
  28. Exit For
  29.  
  30. End If
  31. Next i
  32. End With
  33.  
  34. End Function
  35.  
  36. ' Y en el evento KEYDOWN del control combo_box
  37. Select Case KeyCode
  38. Case vbKeyBack, vbKeyDelete 'if the Backspace or Delete key is pressed...
  39. Select Case Len(NOMBRE_DEL_COMBOBOX.Text)
  40. Case Is &lt;&gt; 0 '...and if the cboComboBox has text, then
  41. Backspaced = True  'set this to True
  42.  
  43. End Select
  44. End Select
  45.  
  46. ' para activarlo en el evento Change del <strong>combobox </strong>es necesario llamar a la funciona de autocompletado:
  47.  
  48. AutoCompletadoCombo nombreDelComboBox

un ejemplo sencillo para descargar

Al ejemplo le faltaba que fuera correctamente la propiedad listindex del combo, la que yo utilizaba, asi que tuve que modificar unas lineas para conseguirlo. Si alquien lo pide lo posteare...

Con este sencillo codigo tenemos un control combo box normal convertido en un suggest con el contenido de el. Adios al componente  Microsoft Forms 2.0 object Library y a las dependencias del programa a tener instalado Microsfot office! Todo por instalar OpenOfice :P  vaya dia!