|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Nella prova avete considerato solo i tempi di esecuzione, provate a considerare anche l'occupazione di memoria
![]() E ovviamente spero che le compilazioni fossero in Release. Per la versione C# manca il tempo di creazione di 10M di array di BbVectors di dimensione 100 e occhio alle ottimizzazioni del runtime, fategli fare qualcosa oltre all'allocazione, altrimenti il runtime potrebbe pure decidere di non allocare niente ![]() Comunque perchè la versione C++ non eredita/utilizza vector? Dato che la versione C# si basa su List (perchè non deriva direttamente da List?) un confronto più equo impone che la classe C++ utilizzi vector, oppure che la classe C# reinventi la ruota come è stato fatto per la versione C++. |
![]() |
![]() |
![]() |
#22 | |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Certo che ho compilato in release! E dove siamo? Nel Congo Belga? (cit. Totò).
Quote:
![]() |
|
![]() |
![]() |
![]() |
#23 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
il main nella versione C# è questo:
Codice:
static void Main(string[] args) { Console.WriteLine("THIS IS THE C# VERSION!!\n"); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 10000000; ++i) new BbVector(100); //Console.WriteLine("I have initialized 10M BbVectors of size 100 in {0} s\n", sw.Split()); //Console.WriteLine("\nI have initialized 10M BbVectors of size 100 in {0}ms", sw.ElapsedMilliseconds); Console.WriteLine("\nI have initialized 10M BbVectors of size 100 in {0} s.", (double)sw.ElapsedMilliseconds/(double)1000); } |
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Come detto nella prima pagina io avrei reso i vettori dimensionalmente immutabili utilizzando degli array, ma il design della classe non era quello che mi aveva chiesto Vendettaaaaa. |
|
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
![]() Compilate in release, ovviamente. Qui ho messo i tempi giusti. Cmq provo a fare qualcosa come dici, effettivamente non ci avevi pensato. La versione C++ non usa vector perchè l'ho voluta scrivere così anche a scopo didattico. |
|
![]() |
![]() |
![]() |
#26 | |
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
![]()
__________________
GPU Compiler Engineer |
|
![]() |
![]() |
![]() |
#27 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
nn servono a nulla test fatti a qul modo
![]() Provate ad allocare 10M o 100M di stringhe e quindi a riordinarle con un qualsiasi algoritmo scelto a piacere. |
![]() |
![]() |
![]() |
#28 | |
Senior Member
Iscritto dal: May 2006
Città: Milano&Palermo
Messaggi: 10273
|
Quote:
![]() Comunque sarebbe interessante vedere le differenze su Linux (con Mono ovviamente) Al momento sono all'università e non ho nemmeno una VM Linux a portata di mano (anche se ad ingegneria qualcuno con Linux sul laptop lo si trova sempre, adesso mi faccio un giro ![]() EDIT: nei test che avevo fatto io qualche giorno fa, avevo provato ad usare NGEN, notando che le prestazioni del C# addirittura peggioravano... com'è possibile??
__________________
PC9Ryzen 9 3900X64GB Vengeance LPXGigabyte RTX3080TiCorsair MP600Aorus Elite X570 - PC10SQ216GB LPDDR4256 GB SSDSurface Pro X - PC11Core i9-9980HK64GB DDR4512GB SSDMacBook Pro 2019 - xboxlivekipters - originkipter - steamkippoz - psnkipters |
|
![]() |
![]() |
![]() |
#29 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Sì sempre quello
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:14.