Perché il mio sistema è così lento quando ho così tanta RAM?


8

Quindi ho un computer con 3,45 GB di RAM secondo il mio sistema operativo (XP). Ho 2 GB di RAM virtuale.

La mia azienda spinge Excel al limite di fare riferimento ad altri fogli di lavoro che consumano molte risorse. Spesso quando esegue calcoli, salvataggio, ecc., Il programma sembra bloccarsi a volte fino a 10 minuti.

Quando guardo per vedere qual è il problema, noto che il processore di solito funziona a circa l'8-12% ma la RAM di solito è di oltre 250.000 KB. Questo fa funzionare lentamente il mio computer, il che avrebbe senso se avessi solo 512 o forse un Gigabyte di RAM. So che 250.000 è un po 'di memoria da utilizzare per il sistema operativo, ma con un totale di 6 GB, mi aspetterei prestazioni molto migliori.

C'è una spiegazione sul perché sarebbe così lento?

modifica: dovrei chiarire. Sto cercando più del concetto alla base di questo non solo una soluzione per il mio computer che funziona lentamente (che doveva essere solo un esempio). Avevo la sensazione che avrei dovuto essere in grado di utilizzare quasi tutta la mia RAM prima di notare gravi variazioni di velocità che avrebbero influenzato l'intero sistema.


Quale processore hai? Inoltre, 4 GB di RAM non sono poi così tanti. Nella media al massimo, ma è la minima raccomandazione minima che farei a chiunque oggi.
Darth Android

È quasi "nella media al massimo" per un sistema che esegue XP a 32 bit.
Joe Internet,

1
@Joe Il rapporto con la capacità massima del sistema operativo è irrilevante, solo in relazione al numero di applicazioni che l'utente medio utilizza in questi giorni e alla quantità di memoria occupata. È vero, l'aggiunta di più non avrà alcun effetto fino a quando non si aggiorna a un sistema operativo a 64 bit.
Darth Android il

IMO, non puoi rimuovere il contesto hw dalla "media". OP esegue Windows XP, che ha una RAM minima consigliata di 128M, con un minimo supportato di 64M. Quindi il minimo supportato di circa 55 volte è probabilmente superiore alla media.
Joe Internet,

Risposte:


11

Alcuni di questi fogli di calcolo referenziati potrebbero essere su una LAN? In tal caso, che tipo di connessione hai ai file sulla LAN (100mbit, Gigabit, wireless, ecc.)?

Excel è molto "loquace". Soprattutto quando hai a che fare con fogli di calcolo di riferimento e dati distribuiti su varie risorse, possono essere necessarie molte comunicazioni affinché l'applicazione invii e riceva le informazioni necessarie. Se la maggior parte dei file si trova su condivisioni di rete e unità di rete, questo potrebbe spiegare almeno un pezzo della lentezza che stai riscontrando.

Inoltre, indipendentemente da quanta memoria stai usando, probabilmente troverai excel.exe di solito non occupa la quantità di memoria che ti aspetti. Ci sono altri processi in esecuzione sul tuo computer che non sono necessari? Molte icone sulla barra delle applicazioni (accanto al tuo orologio) che non hai idea di come siano arrivate lì o a cosa servano?

Infine, molte aziende sfruttano Excel ben oltre le sue migliori funzioni, come sembra fare la tua azienda (perché, oh perché non usano un database quando hanno bisogno di un database e lasciano Excel alle semplici funzioni di registrazione ed elaborazione dei dati ??? ?), Ho scoperto che confrontando la velocità di Excel sulle nostre macchine più vecchie / più lente (desktop IBM di 4 anni 8215 e 9645) e macchine più recenti / più veloci (desktop di 6 mesi, 3269, 9964) e non c'è differenza significativa .

A seconda di come vengono scritte le macro e il codice che collega i fogli di calcolo, potrebbero esserci dei limiti sostanzialmente rigidi alla velocità con cui quel foglio di calcolo può raccogliere ed elaborare i dati di cui ha bisogno.

Tutto quello che puoi fare è identificare e mitigare tutti i possibili punti di lentezza che puoi e sperare per il meglio.


Wow l'hai inchiodato! L'avevo appena capito con l'aiuto del post precedente e ho visto questa risposta in seguito. E sì, sono d'accordo sul database. Mi è stato detto che il motivo era "perché non vogliamo pagare un DBA". Invece mi pagano per passare 3 ore al giorno facendo schioccare i pollici in attesa di Excel. Sono sicuro che parte del problema potrebbe essere il VBA, dato che sono anche autodidatta, ma quello che sto notando è probabilmente più un problema LAN. Grazie!
Zombian,

4
Prego. La buona notizia è che ci possono essere modi relativamente efficienti per fare le cose in Excel. Un'attività comune è trovare il numero di righe di dati. Alcune persone cercheranno un massimo predefinito per tutte le righe di dati, supponendo che altri modi rischino di riportare l'ultima riga quando incontrano la prima cella vuota, senza rendersi conto che ci sono modi più rapidi rispetto al controllo manuale di un intero intervallo che non fallisce prima cella vuota. Un'altra buona pratica nella codifica Excel è il caricamento di intere tabelle negli array, che le mantiene locali nella memoria. Piccole cose come questa si sommano e aiutano a velocizzare le cose.
music2myear,

1
Trascorri queste 3 ore al giorno imparando la teoria di SQL e database e come migliorare le tue abilità VBA di Excel. Avere un DBA dedicato fa bene alle cose molto difficili o alle cose di ferro molto grandi, non è troppo difficile andare avanti con qualcosa come l'edizione di SQL Server Express.
Joe Internet,

1
@Joe: O Access (che sarebbe più amichevole per l'azienda perché probabilmente lo hanno già installato tutti, ma molto più facile di Excel per migrare su SQL Server un giorno)
BlueRaja - Danny Pflughoeft

Non riesco a pensare a un singolo vantaggio che Access porterebbe a questa situazione, oltre alla possibilità di disegnare pulsanti sui moduli. Se ne hai davvero bisogno, Visual Studio Express è ancora una scelta migliore.
Joe Internet,

6

Windows XP non fa un ottimo lavoro nell'usare più di circa 1 GB di RAM. Alcune applicazioni potrebbero usarne di più, ma nessuna singola applicazione può utilizzare più di 2 GB alla volta, almeno per impostazione predefinita: è lo spazio di indirizzi virtuale più grande che un'applicazione possa vedere. Esiste una modalità che consente uno spazio di indirizzi di 3 GB, ma che può causare problemi di compatibilità per molti software.

Se la tua macchina utilizza solo 0,25 GB, sembra piuttosto strano - a meno che la memoria non sia affatto il tuo collo di bottiglia.

Se la tua macchina "sembra bloccarsi", la mia ipotesi sarebbe che stai facendo un sacco di accesso al disco rigido. Ciò potrebbe rendere rilevante il problema di utilizzo della memoria di Windows XP: Windows 7 è molto più aggressivo nel prevedere ciò che verrà utilizzato nel prossimo futuro e memorizzarlo nella cache. Windows XP non utilizzerà nemmeno tanta memoria per la cache, per non parlare del tentativo di memorizzazione nella cache predittiva, quindi è molto più probabile che si verifichi il "thrash" del disco rigido.

Se questo è il problema, alcune opzioni da considerare sono ...

  1. Prova a utilizzare un ramdisk, per ridurre al minimo l'uso del disco rigido. Metti lì i documenti e assicurati che siano archiviati anche tutti i file temporanei. Sono disponibili anche alcuni ramdisk che utilizzeranno la RAM al di fuori dei 4 GB a cui può accedere Windows XP a 32 bit.

  2. Utilizzare un array raid con striping per migliorare le prestazioni del disco rigido.

  3. Utilizzare un disco rigido a stato solido, ma tenere presente che se l'applicazione sta eseguendo molte scritture, ciò potrebbe causare un'eccessiva usura per tale SSD. Inoltre, Windows XP non è ottimizzato per gli SSD: cerca gli aggiornamenti per supportare Trim.

Fondamentalmente, l'idea è (1) di forzare il sistema a utilizzare la RAM o (2, 3) di investire in hardware che ridurrà il collo di bottiglia delle prestazioni.


Grazie! Uso un profilo di roaming e questo mi ha fatto capire che la lettura / scrittura sul server per i file su cui sto lavorando è probabilmente una grande parte del problema. Inoltre, ben documentato! Grazie ancora.
Zombian,

2

Sembra che tu stia utilizzando un sistema operativo a 32 bit (non lo dici per certo nella domanda), in tal caso sei limitato a 3,45 GB di memoria indirizzabile . Windows semplicemente non conosce memoria al di sopra di questo limite.

Ciò significa che quando si eseguono programmi che utilizzano molte risorse, si esegue il paging del disco per la maggior parte del tempo poiché il sistema operativo deve scambiare i dati in memoria con quelli sul disco. Potresti provare ad aumentare le dimensioni del tuo file di paging (supponendo che sia quello che intendi per RAM virtuale), ma faresti meglio a lasciare che Windows lo gestisca.

Sarà necessario installare un sistema operativo a 64 bit per ottenere vantaggi prestazionali dalla memoria.


1
vuoi dire che anche se installo un ram da 8 GB sul mio box a 32 bit avrò solo 3,45 GB? e il resto non verrà mai usato?
Pacerier,

1
@Pacerier - qualcosa del genere. Esiste un limite di 2 GB per processo e il limite è dovuto alla natura del sistema operativo: 2 elevato alla 32a potenza è 4 GB, quindi non è possibile aumentare.
ChrisF,

2

Sospetto qualcosa di totalmente diverso dalle risposte attuali: mi chiedo se hai installato l'aggiornamento "Convalida file di Microsoft Office per Office 2003, Office 2007 e Office 2010".

Porta l'accesso alla rete dei file Excel in un CRAWL. Mi ci è voluto circa 1 minuto solo per aprire un file 21k. Non appena si stacca, bum !, torna alla normalità.

Vedi il mio post qui su Server Fault e l'articolo KB associato, che lo nota come "problema noto".

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


Wow! Sembra intenso! Fortunatamente sto usando Excel 2010 e lo noto anche da mesi (il post diceva che l'aggiornamento era all'inizio di questo mese). Grazie per l'attenzione. Vorrei che fosse così semplice!
Zombian,

@Zombian OK, almeno hai controllato. Sì, non influisce su Excel 2010 poiché la funzionalità problematica dell'aggiornamento è integrata, ma non sciocca come per il 2003/2007. Quell'aggiornamento ha causato a molti amministratori professionisti un sacco di tempo e tirando i capelli. Vorrei anche che fosse stato così facile per te.
KCotreau,

1

Altre risposte menzionano cose che potrebbero contribuire ai tuoi problemi, ma nessuna di queste sembra menzionare che Excel abbia limiti di memoria incorporati; non utilizzerà tutta la RAM di un PC.

Ecco alcuni dei limiti che Excel ha:

  • Excel 5: limitato a 16 MB
  • Excel 95/97/2000: limitato a 64 MB
  • Excel 2002: limitato a 128 MB
  • Excel 2003: limitato a 1 GB di set di lavoro, meno per le cartelle di lavoro effettive
  • Excel 2007: limitato a set di lavoro da 2 GB , meno per le cartelle di lavoro effettive
  • Excel 2010: limitato a 2 GB in Excel a 32 bit, 8 terabyte ( 8000 GB ) in Excel a 64 bit

Fonte e maggiori informazioni: Excel Memory Limits , di Charles Williams, Microsoft Excel MVP

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.