How important is the accurate specification of nnz for spalloc?
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Ulrik William Nash
 il 22 Lug 2017
  
    
    
    
    
    Commentato: James Tursa
      
      
 il 22 Lug 2017
            How important for performance is the accurate specification of nnz for spalloc? And is undershooting worse than overshooting?
0 Commenti
Risposta accettata
  James Tursa
      
      
 il 22 Lug 2017
        
      Modificato: James Tursa
      
      
 il 22 Lug 2017
  
      In general, undershooting is much worse than overshooting. With undershooting, if you go over the allocated amount by even 1 element, the entire data blocks (value & indexing) must be copied over into newly allocated data blocks. But if you overshoot by 1 element, you simply have a few bytes of extra storage allocated and it will not impact performance at all. As to how bad the undershooting will hurt you, that will depend entirely on how large those data blocks are and how often you end up copying them to newly allocated memory blocks.
2 Commenti
  James Tursa
      
      
 il 22 Lug 2017
				FYI, if you add in one element beyond current capacity, MATLAB does not allocate room for just one more element ... it is smarter than that. It will allocate more space using an internal formula based on the current size of the blocks. But still, it is best to limit how often this happens if you can.
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Sparse Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!