Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-05-2009, 11:15   #1
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
[C] AIUTO, forte calo prestazioni con Vista

Salve, uso Ubuntu per imparare a programmare col C, in particolare programmi di number-crunching... Ho provato a compilare un programma per la trasmissione termica che usa il metodo delle differenze finite: il mio problema e' che compilando lo stesso programma con MinGW, la sua esecuzione sotto Vista e' lentissima, in Ubuntu (compilato con gcc) completa il lavoro in 16 secondi, mentre in Vista in 30... Anche con l'utilizzo di wine per lanciare l'eseguibile win32 sotto linux il calcolo viene completato in 16 secondi. Ho un portatile con cpu Intel Core2 Duo T9400 a 2.53GHz, ho gia controllato che non sia impostata la modalita' di risparmio energetico ecc... Lo stesso programma su un vecchio athlon a 2GHz con WinXp completa il lavoro piu' velocemente (in 25sec) ! Ho inoltre provato anche la versione gratuita di Visual C++ Express ottenendo lo stesso risultato scoraggiante (e anche peggio). Com'e' possibile? Sara' dovuto all'utilizzo di qualche libreria dinamica? Il sorgente in se' non si appoggia ad alcuna libreria, tranne quelle standard del C naturalmente. Magari con gcc le librerie vengono incluse staticamente e con MinGW dinamicamente? Ringrazio chiunque sappia darmi qualche risposta/consiglio.
Ps. ho appena provato ad eseguire sotto Ubuntu (con Wine) il programma compilato con VS, e' anche piu' veloce della versione compilata con GCC, completa il lavoro in meta' tempo rispetto all'esecuzione sotto Vista!
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 11:26   #2
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
Per avere una comparazione adeguata dovresti usare un compilatore altrettanto efficiente sui due sistemi. Inoltre a seconda dell'implementazione della standard library (e dell'uso che ne fai) i risultati potrebbero variare. Infine i vari anti* presenti su windows potrebbero rallentare l'allocazione/deallocazione di memoria, quindi se fai abbondante uso di malloc e free, questa potrebbe essere una causa.
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 11:54   #3
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Grazie, in effetti faccio ampio uso di malloc e free. Tuttavia mi sembra strano che lo stesso eseguibile sotto Xp e Linux sia il doppio piu' veloce che sotto Vista. Ho fatto un'ulteriore prova, sul desktop con Xp ho preparato una virtual machine con Vista, e in questo caso le prestazioni restano paragonabili a quelle del host con Xp (solo il 10% piu' lento)! Credo di aver fatto una comparazione adeguata lanciando lo stesso eseguibile sotto Vista, Xp e Ubuntu, e casomai tra i tre dovrebbe essere svantaggiato Ubuntu. Quindi Vista gestisce diversamente l'allocazione della memoria? E provando Vista in una VM con host Xp, la gestione forse viene passata direttamente a quest'ultimo e per questo non si riscontra un tale calo nelle prestazioni?
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 12:22   #4
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
Mi è appena venuta in mente una cosa molto buffa che avevo riscontrato tempo fa occupandomi di alcune applicazioni per cui le performance erano importantissime: un'elaborazione che normalmente richiedeva 16ms su Vista richiedeva oltre 2s. Anche in quella circostanza c'erano molte malloc/free etc, e avevo osservato che eseguendo come amministratore le performance tornavano ai livelli previsti. Bizzarro, non ho mai capito il perché e non ho perso tempo a indagare, ma magari può esserti d'aiuto.
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 12:48   #5
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Avviare come amministratore è stata una delle prime cose che ho provato, ma purtroppo nel mio caso non c'è stato alcun miglioramento.
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 13:10   #6
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
Prova ad eseguire qualche benchmark sintetico su Vista (tipo Sandra o Passmark) e vedi come sta andando la CPU. Verifica che i risultati non si discostino molto da quelli di riferimento per il tuo setup. E magari verifica anche la RAM
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 13:22   #7
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Ho fatto anche questa verifica, col superpi, 1M in 18 secondi, e tempo fa ho provato con Sandra e 3DMark ed era tutto ok. Ho testato la ram con memtest e non da errori, e durante l'esecuzione dei programmi ho verificato con cpuz che la frequenza della cpu sia effettivamente quella massima.
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 14:16   #8
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Nedmalloc

Questo è 120x più veloce del memory allocator di Windows

Potresti provare ad usarlo (tanto è facilissimo, basta sostituire il nome delle funzioni) in maniera di fare un confronto alla pari tra Vista e Ubuntu.

Ora cambia completamente il codice del malloc, ed è ovvio che i risultati siano strani...

PS: hai provato in Release? Malloc di windows soffre molto il debug.
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 17:17   #9
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Si, ho fatto tutto in release. Sto tentando di provare nedmalloc, ho messo tutti i file nella directory del mio sorgente, ho inserito un #include "nedmalloc.c", come nel file di esempio, ho sostituito tutti i malloc con nedmalloc e i free con nedfree, ma compilando in VS mi dice "nedmalloc: identificatore non trovato". Scusate, sono novellino, dove sbaglio?
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 19:05   #10
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Uhmno... devi includere nei tuoi file nedmalloc.h, e quindi aggiungere al progetto nedmalloc.c.
Se lo compili come C++ poi devi usare il namespace nedalloc...
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 20:30   #11
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Provato co MSVC, funziona! Il tempo di calcolo si è ridotto del 50%, da 29 a 14 secondi! Prima ho provato anche con Hoard, ottenendo gli stessi risultati. Tuttavia non riesco a farlo funzionare da MinGW (uso NetBeans come IDE), ma solo dal MSVC. In particolare mi da errore su tutti i namespace del nedmalloc.h.
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 20:45   #12
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Risolto il problema dei namespace modificando l'estensione del file in .cpp. Tuttavia non compila ancora, mi da "undefined reference to `_InterlockedExchange' " che compare nel malloc.c.h, Qualche suggerimento su come risolvere?
Ps. Grazie a tutti per il prezioso aiuto!
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2009, 22:22   #13
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Non ti so dire come farlo funzionare... io mi son limitato ad inserirlo ed ha funzionato.
Magari, prova a lasciarlo .c e includerlo dentro "extern "C""

Cmq buono che migliora così tanto la situazione... chissà perchè nessuno sostituisce mai l'allocator di windows dato che si hanno miglioramenti "for free"...

Ps: il fatto che un allocator più performante ti dà tale vantaggio potrebbe voler dire che il tuo codice spreca malloc e frees... hai provato ad utilizzare del pooling, per riutilizzare la memoria?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2009, 13:16   #14
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Innanzitutto vi ringrazio per l'aiuto! Ho provato ad utilizzare nedmalloc in gcc e funzionava a patto di compilare con l'opzione -pthread. In MinGW pthread non c'è, per questo non funzionava; ho provato poi con dlmalloc, funziona senza problemi in MinGW ed è il più semplice da implementare, è sufficiente includere nel progetto malloc.c e malloc.h. Dlmalloc funziona anche in VS, tuttavia alla terminazione del programma dà l'errore "this application has requested the runtime...", probabilmente va in conflitto col malloc della libreria msvcrt... Alla fine la soluzione più rapida e trasparente per VS si è rivelata Hoard, mentre per MinGW dlmalloc.
ironman80 è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2009, 13:27   #15
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13012
Che versione usi di MinGW? La versione stabile usa ancora gcc 3.4.5... quella in DEV mi pare sia la 4.3.x...

In ogni caso tenete a mente che è un porting, e per cui dubito sia molto ottimizzato per Win.

Usa il compilatore della Microsoft
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2009, 14:14   #16
ironman80
Junior Member
 
Iscritto dal: May 2009
Messaggi: 9
Uso la stable. Si, tra un po' migrerò a VS perché comincierò a smanettare con CUDA, che sotto Windows è supportato esclusivamente da VS. Cmq contemporaneamente cercerò di farlo funzionare sotto Jaunty con l'accoppiata gcc+Netbeans, non appena alla Nvidia forniranno dei driver decenti non-beta che mi danno non pochi problemi sul mio portatile...
ironman80 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Intel brevetta XBM: la nuova memoria pun...
Film prodotti con l'IA: Disney, insieme ...
Reinstallare Windows senza chiavette o s...
Apple racconta il suo vantaggio nell'AI ...
Cisco Cloud Control, una cabina di regia...
Il software che controlla le Fab va in p...
Il settore tech è il primo bersag...
Windows 11, corretto un bug che poteva o...
X introduce nuove funzioni per i video c...
Blue Origin sta costruendo diversi lande...
DeepSeek avvia lo sviluppo di un chip pr...
Le offerte migliori ora su Amazon sugli ...
Fino a un petabit al secondo! Il piano d...
Cisco punta tutto sull'IA: tutti i 90.00...
Intel Nova Lake riporterà il supp...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:00.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v