java - studio - que necesito para programar en android
¿Por qué mi aplicación se está iniciando en más de 2 minutos? (2)
No estoy seguro si esta es la respuesta que está buscando, tuve este problema en un servidor de Windows 2012. La única solución para mí fue desinstalar Java y luego reinstalarlo.
Estoy ejecutando una aplicación gráfica de Java hecha con swing en mi computadora con Windows 7 de 64 bits.
Mi aplicación es un archivo jar ejecutable que ejecuto desde el símbolo del sistema con el siguiente comando:
C:/path/to/jre/java.exe -jar myProg.jar
Mi problema es que tengo grandes problemas de rendimiento cuando uso JRE8 32bits, pero no cuando uso JRE7 32bits o JRE8 64bits.
Tenga en cuenta que la aplicación se ejecuta con el mismo archivo jar; la única diferencia es que está siendo ejecutado por diferentes JRE.
Intenté con una versión diferente de JRE8 y el problema persiste ...
Cuando comparo ambos resultados cuando uso el argumento "-verbose", veo que obtengo más de 1500 salidas con texto: ''[Loaded xxxxxx del archivo de objetos compartidos]'' para el JRE7 mientras no obtengo ninguno para JRE8.
¿Mayby puede estar relacionado de alguna manera?
¿Alguien tiene una idea sobre cuál podría ser el problema?
Aquí hay algunos resultados del JRE7
[Loaded MainFrame.MainFrame$XtrFileFilter from rsrc:./]
[Loaded java.awt.event.HierarchyListener from shared objects file]
[Loaded java.lang.InterruptedException from shared objects file]
[Loaded java.io.FileWriter from shared objects file]
[Loaded javax.swing.CellEditor from shared objects file]
[Loaded javax.swing.table.TableCellEditor from shared objects file]
[Loaded java.awt.image.RenderedImage from shared objects file]
[Loaded java.awt.image.WritableRenderedImage from shared objects file]
[Loaded java.awt.image.BufferedImage from shared objects file]
[Loaded sun.awt.util.IdentityArrayList from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded java.awt.Window$Type from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded java.util.concurrent.atomic.AtomicBoolean from shared objects file]
[Loaded sun.awt.AWTAccessor$WindowAccessor from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded java.awt.Window$1 from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded sun.awt.AWTAccessor$FrameAccessor from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded java.awt.Frame$1 from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded java.awt.ComponentOrientation from shared objects file]
[Loaded java.awt.Component$3 from c:/Program Files (x86)/Java/jdk1.7.0_45/jre/lib/rt.jar]
[Loaded javax.swing.ImageIcon from shared objects file]
[Loaded MainFrame.Simulation.Simulation from rsrc:./]
[Loaded MainFrame.Optimization.Optimization from rsrc:./]
[Loaded MainFrame.Convergence.Convergence from rsrc:./]
[Loaded java.awt.event.WindowEvent from shared objects file]
[Loaded MainFrame.Menu from rsrc:./]
Aquí hay algunas salidas de JRE8
[Loaded MainFrame.MainFrame from rsrc:./]
[Loaded java.util.EventListener from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded java.awt.event.ActionListener from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded javax.swing.Action from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.reflect.NativeMethodAccessorImpl from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.reflect.DelegatingMethodAccessorImpl from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded javax.swing.UIManager from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded javax.swing.UIManager$LookAndFeelInfo from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.awt.OSInfo from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.awt.OSInfo$WindowsVersion from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.awt.OSInfo$1 from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.awt.OSInfo$OSType from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded java.awt.Toolkit from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.awt.AWTAccessor$ToolkitAccessor from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded java.awt.Toolkit$4 from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.awt.AWTAccessor from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded java.awt.Toolkit$5 from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded java.util.ResourceBundle$Control from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
[Loaded sun.util.CoreResourceBundleControl from c:/Program Files (x86)/Java/jre1.8.0_45/lib/rt.jar]
Ejecuté Xshare: volcado tanto para JRE7 como para JRE8 y obtuve los siguientes resultados:
JRE7:
Loading classes to share ... done.
Rewriting and unlinking classes ... done.
Calculating hash values for String objects .. done.
Calculating fingerprints ... done.
Removing unshareable information ... done.
Moving common symbols to metadata section at 0x3a033570 ... done.
Moving vmSymbols to metadata section at 0x3a1d2170 ... done.
Moving the remaining symbols to metadata section at 0x3a1d3478 ... done.
Moved 44361 symbols, 1703760 bytes.
Moving pre-ordered read-only objects to shared space at 0x38a30000 ... done.
Moving read-only objects to shared space at 0x38e129b0 ... done.
Moving string char arrays to shared space at 0x38e20cd8 ... done.
Moving pre-ordered read-write objects to shared space at 0x39430000 ... done.
Moving read-write objects to shared space at 0x399e8fb0 ... done.
Moving String objects to shared space at 0x39a3e920 ... done.
Read-write space ends at 0x39a7dd28, 6610216 bytes.
Updating references to shared objects ... done.
An error has occurred while processing the shared archive file.
Unable to create shared archive file c:/Program Files (x86)/Java/jdk1.7.0_45/jre/bin/client/classes.jsa.
Error occurred during initialization of VM
Unable to use shared archive.
JRE8:
Allocated shared space: 27394048 bytes at 0x14a00000
Loading classes to share ...
Preload Warning: Cannot find javax/swing/JComponent$2
Preload Warning: Cannot find javax/swing/RepaintManager$1$1
Preload Warning: Cannot find javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue
Preload Warning: Cannot find javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1
Preload Warning: Cannot find javax/swing/text/AbstractDocument$InsertStringResult
Preload Warning: Cannot find sun/awt/windows/WToolkit$3$1
Preload Warning: Cannot find sun/java2d/Disposer$2
Preload Warning: Cannot find sun/java2d/d3d/D3DScreenUpdateManager$1
Preload Warning: Cannot find sun/java2d/d3d/D3DScreenUpdateManager$1$1
Loading classes to share: done.
Rewriting and linking classes ...
Rewriting and linking classes: done
Number of classes 2383
instance classes = 2369
obj array classes = 6
type array classes = 8
Calculating fingerprints ... done.
Removing unshareable information ... done.
Shared Lookup Cache Table Buckets = 4108 bytes
Shared Lookup Cache Table Body = 50352 bytes
ro space: 5650016 [ 47.7% of total] out of 12582912 bytes [44.9% used] at 0x14a00000
rw space: 5396096 [ 45.6% of total] out of 12582912 bytes [42.9% used] at 0x15600000
md space: 753892 [ 6.4% of total] out of 2097152 bytes [35.9% used] at 0x16200000
mc space: 34032 [ 0.3% of total] out of 131072 bytes [26.0% used] at 0x16400000
total : 11834036 [100.0% of total] out of 27394048 bytes [43.2% used]
Quizás el archivo de datos de clase compartidos de su instalación no se encuentre o esté dañado.
Puede intentar como se sugiere en la documentación en "Regeneración del archivo compartido"
Para regenerar el archivo, inicie sesión como el administrador; en situaciones de red, inicie sesión en una máquina de la misma arquitectura que la instalación de Java SE y asegúrese de tener permiso para escribir en el directorio de instalación. Luego ejecuta el comando
java -Xshare:dump
información de diagnóstico se imprimirá a medida que se genere el archivo.
Tenga en cuenta que puede aplicar el uso de los datos compartidos para obtener un mensaje de error (en lugar de ralentizar) si falla, como se describe en la misma página:
Controlar manualmente el intercambio de datos de clase
La función de compartir datos de clase se habilita automáticamente cuando las condiciones lo permiten. Las siguientes opciones de línea de comandos están presentes principalmente con fines de diagnóstico y depuración, y pueden cambiar o eliminarse en versiones futuras.
-Xshare:off
- Deshabilitar el intercambio de datos de clase.
-Xshare:on
- Requiere que se habilite el intercambio de datos de clase. Si no se pudo habilitar por varias razones, imprima un mensaje de error y salga.
-Xshare:auto
- El valor por defecto; habilitar el intercambio de datos de clase siempre que sea posible.