¿Por qué mi sistema es tan lento cuando tengo tanta RAM?

8

Entonces tengo una computadora con 3.45 GB de RAM de acuerdo con mi sistema operativo (XP). Tengo 2 GB de RAM virtual.

Mi empresa lleva a Excel a sus límites para hacer referencia a otras hojas de trabajo que consumen muchos recursos. Muchas veces, cuando está ejecutando cálculos, guardando, etc., el programa parecerá bloquearse por hasta 10 minutos.

Al mirar para ver cuál es el problema, noto que el procesador generalmente se ejecuta a aproximadamente 8-12%, pero la RAM generalmente es de más de 250,000 KB. Esto hace que mi computadora funcione lentamente, lo que tendría sentido para mí si solo tuviera 512 o tal vez un Gigabyte de RAM. Sé que 250,000 es bastante memoria para usar en el sistema operativo, pero con un total de 6 GB, esperaría un rendimiento mucho mejor.

¿Hay alguna explicación de por qué sería tan lento?

editar: debería aclarar. Estoy buscando más del concepto detrás de esto, no solo una solución para que mi computadora funcione lentamente (se suponía que eso era un ejemplo). Tenía la percepción de que debería ser capaz de usar casi toda mi RAM antes de notar cambios serios en la velocidad que afectarían a todo mi sistema.

Zombi
fuente
¿Qué procesador tienes? Además, 4 GB de RAM no es tanto. Promedio en el mejor de los casos, pero es la recomendación mínima que le haría a cualquiera hoy.
Darth Android
No es "promedio en el mejor de los casos" para un sistema que ejecuta XP de 32 bits.
Joe Internet
1
@Joe La relación con la capacidad máxima del sistema operativo es irrelevante, solo la relación con la cantidad de aplicaciones que el usuario promedio usa en estos días y la cantidad de memoria que ocupan. Es cierto que agregar más no tendrá efecto hasta que actualice a un sistema operativo de 64 bits.
Darth Android
En mi opinión, no puede eliminar el contexto hw del "promedio". OP está ejecutando Windows XP, que tiene una RAM mínima recomendada de 128M, con un mínimo admitido de 64M. Entonces, aproximadamente 55 veces el mínimo admitido es probablemente superior al promedio.
Joe Internet

Respuestas:

11

¿Podrían algunas de estas hojas de cálculo referenciadas estar en una LAN? Si es así, ¿qué tipo de conexión tiene con los archivos en la LAN (100mbit, Gigabit, inalámbrico, etc.)?

Excel es muy "hablador". Especialmente cuando se trata de hojas de cálculo de referencia y datos distribuidos en varios recursos, la aplicación puede necesitar mucha comunicación para enviar y recibir la información necesaria. Si la mayoría de los archivos están en redes compartidas y unidades de red, esto puede explicar al menos una parte de la lentitud que está experimentando.

Además, independientemente de la cantidad de memoria que esté utilizando, probablemente encontrará que excel.exe generalmente no toma tanta memoria como espera que tome. ¿Hay otros procesos que se ejecutan en su computadora que no son necesarios? ¿Muchos íconos de la barra de tareas (al lado de su reloj) que no tiene idea de cómo llegaron allí o para qué sirven?

Finalmente, muchas compañías aprovechan Excel más allá de sus mejores funciones, como parece que su compañía lo hace (¿por qué, oh por qué no usan una base de datos cuando la necesitan y dejan Excel para las funciones simples de grabación y procesamiento de datos? ?), Descubrí que al comparar la velocidad de Excel en nuestras máquinas más antiguas / más lentas (computadoras de escritorio IBM de 4 años 8215 y 9645) y máquinas más nuevas / más rápidas (computadoras de escritorio de 6 meses, 3269, 9964), y no hay una diferencia significativa .

Dependiendo de cómo se escriben las macros y el código que conecta las hojas de cálculo, puede haber límites esencialmente estrictos para la rapidez con que esa hoja de cálculo puede recopilar y procesar los datos que necesita.

Todo lo que puede hacer es identificar y mitigar todos los posibles puntos de lentitud que pueda, y esperar lo mejor.

music2myear
fuente
Wow lo has clavado! Acababa de descubrirlo con la ayuda de la publicación anterior y vi esta respuesta después. Y sí, estoy de acuerdo con la base de datos. Me dijeron que la razón era "porque no queremos tener que pagar un DBA". En cambio, me pagan para pasar 3 horas al día haciendo girar mis pulgares esperando Excel. Estoy seguro de que parte del problema podría ser el VBA, ya que también soy principalmente autodidacta, pero lo que estoy notando es probablemente más un problema de LAN. ¡Gracias!
Zombian
44
Eres muy bienvenido. La buena noticia es que puede haber formas relativamente eficientes de hacer cosas en Excel. Una tarea común es encontrar el número de filas de datos. Algunas personas buscarán un máximo preestablecido para todas las filas de datos, suponiendo que otras formas corren el riesgo de informar la última fila cuando encuentran la primera celda vacía, sin darse cuenta de que hay formas más rápidas que verificar manualmente un rango completo que no falla en el primera celda vacía Otra buena práctica en la codificación de Excel es cargar tablas enteras en matrices, lo que las mantiene locales en la memoria. Pequeñas cosas como esta se suman y ayudan a acelerar las cosas.
music2myear
1
Pase esas 3 horas al día aprendiendo la teoría de bases de datos SQL y cómo mejorar sus habilidades de Excel VBA. Si bien tener un DBA dedicado es bueno para las cosas muy difíciles o las cosas de hierro muy grandes, no es demasiado difícil comenzar con algo como la edición SQL Server Express.
Joe Internet
1
@ Joe: O Access (que sería más amigable para la empresa porque probablemente todos ya lo tengan instalado, pero mucho más fácil que Excel para migrar a SQL Server algún día)
BlueRaja - Danny Pflughoeft
No puedo pensar en un beneficio único que Access aportaría a esta situación, aparte de la capacidad de dibujar botones en los formularios. Si realmente lo necesita, Visual Studio Express sigue siendo una mejor opción.
Joe Internet
6

Windows XP no hace un muy buen trabajo al usar más de alrededor de 1 GB de RAM. Algunas aplicaciones pueden usar más, pero ninguna aplicación individual puede usar más de 2 GB a la vez, al menos de manera predeterminada, ese es el mayor espacio de direcciones virtuales que puede ver una aplicación. Hay un modo que permite un espacio de direcciones de 3GB, pero que puede causar problemas de compatibilidad para una gran cantidad de software.

Si su máquina solo usa 0.25GB, eso parece bastante extraño, a menos que la memoria no sea su cuello de botella.

Si su máquina "parece bloquearse", supongo que está haciendo mucho acceso al disco duro. Eso puede hacer que el problema del uso de la memoria de Windows XP sea relevante: Windows 7 es mucho más agresivo al predecir lo que usará en el futuro cercano y almacenarlo en caché. Windows XP ni siquiera usará tanta memoria para el caché, y mucho menos tratará de hacer un almacenamiento en caché predictivo, por lo que es mucho más probable que "golpee" el disco duro.

Si ese es el problema, algunas opciones a considerar son ...

  1. Intente usar un disco ram para minimizar el uso del disco duro. Coloque los documentos allí y asegúrese de que los archivos temporales también estén almacenados allí. Incluso hay algunos discos RAM disponibles que usarán RAM fuera de los 4 GB a los que puede acceder Windows XP de 32 bits.

  2. Utilice una matriz de incursiones con bandas para mejorar el rendimiento de su disco duro.

  3. Use un disco duro de estado sólido, pero tenga en cuenta que si su aplicación está haciendo muchas escrituras, eso puede causar un desgaste excesivo de ese SSD. Además, Windows XP no está optimizado para SSD: busque actualizaciones para admitir Trim.

Básicamente, la idea es (1) forzar a su sistema a usar RAM o (2, 3) invertir en hardware que reducirá su cuello de botella de rendimiento.

Steve314
fuente
¡Gracias! Utilizo un perfil móvil y esto me hizo darme cuenta de que la lectura / escritura en el servidor de los archivos en los que estoy trabajando es probablemente una gran parte del problema. Además, bien documentado! Gracias de nuevo.
Zombian
2

Parece que está utilizando un sistema operativo de 32 bits (no lo dice con certeza en la pregunta), en ese caso está limitado a 3.45 GB de memoria direccionable . Windows simplemente no conoce ninguna memoria por encima de este límite.

Esto significa que cuando ejecute programas que usan muchos recursos, estará paginando en el disco la mayor parte del tiempo, ya que el sistema operativo debe intercambiar los datos en la memoria con los del disco. Podría intentar aumentar el tamaño de su archivo de página (suponiendo que eso es lo que quiere decir con RAM virtual), pero sería mejor dejar que Windows gestione esto.

Deberá instalar un sistema operativo de 64 bits para obtener beneficios de rendimiento de su memoria.

ChrisF
fuente
1
¿Quiere decir que incluso si instalo una memoria RAM de 8GB en mi caja de 32 bits solo tendré 3.45 GB? y el resto nunca será usado?
Pacerier
1
@Pacerier: algo así. Hay un límite de 2 GB por proceso y el límite se debe a la naturaleza del sistema operativo: 2 elevado a la potencia 32 es 4 GB, por lo que no puede ir más alto.
ChrisF
2

Sospecho que hay algo totalmente diferente a las respuestas actuales: me pregunto si tiene instalada la actualización "Validación de archivos de Microsoft Office para Office 2003, Office 2007 y Office 2010".

Trae acceso de red de archivos de Excel a un CRAWL. Me llevó alrededor de 1 minuto abrir un archivo de 21k. Tan pronto como salga, ¡bang !, vuelve a la normalidad.

Vea mi publicación aquí sobre Falla del servidor y el artículo de KB asociado, que señala esto como "problema conocido".

/server/286427/slow-opening-of-excel-files-on-the-network

KCotreau
fuente
¡Guauu! Eso suena intenso! Afortunadamente, estoy ejecutando Excel 2010 y también lo he notado durante meses (la publicación decía que la actualización era a principios de este mes). Gracias por el aviso. ¡Desearía que fuera así de simple!
Zombian
@Zombian OK, al menos lo has comprobado. Sí, no afecta a Excel 2010 ya que la funcionalidad problemática de la actualización está integrada, pero no es tonta como en 2003/2007. Esa actualización causó a muchos administradores profesionales mucho tiempo y tirones de cabello. También desearía que hubiera sido tan fácil para ti.
KCotreau
1

Otras respuestas mencionan cosas que pueden contribuir a sus problemas, pero ninguna de ellas parece mencionar que Excel tiene límites de memoria incorporados; no usará toda la RAM de una PC.

Estos son algunos de los límites que tiene Excel:

  • Excel 5: limitado a 16 MB
  • Excel 95/97/2000: limitado a 64 MB
  • Excel 2002: limitado a 128 MB
  • Excel 2003: limitado a 1 GB de conjunto de trabajo, menos para libros de trabajo reales
  • Excel 2007: limitado a un conjunto de trabajo de 2 GB , menos para libros de trabajo reales
  • Excel 2010: limitado a 2 GB en Excel de 32 bits, 8 terabytes ( 8000 GB ) en Excel de 64 bits

Fuente y más información: Límites de memoria de Excel , por Charles Williams, MVP de Microsoft Excel

Steven Noto
fuente