Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-01-2008, 17:46   #1
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[c] migliorare prestazioni del programma

ho notato che questa parte di codice appesantisce molto lo script (senza ci mette circa la metà)...
if((x%1048576)==0)
printf("%dMb\n",(x/1048576));

come avvelocizzarlo senza perdere la funzione che segna quanti megabyte sono stati processati??
si puo poi velocizzare anche il resto del programma??

grazie mille


Codice:
#include <stdio.h>

int main (void){
    
    char nomefile[20];
    scanf("%s",nomefile);
    printf("%s!\n",nomefile);


    char *buf;
    buf = new char [1];
    FILE *f, *f_out;
    if ((f = fopen(nomefile, "rb")) && (f_out = fopen("cript.crp", "wb")))
	{
		size_t b;
        long x=0;
		while( b= fread( buf, 1, 1, f) ) {
            buf[0]=buf[0]+1;//cifratura
            x++;
            if((x%1048576)==0)
            printf("%dMb\n",(x/1048576));
            fwrite( buf, 1, b, f_out);

        }
	    pclose(f);
	    fclose(f_out);

	}
    
    
    return 0;   
}
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2008, 19:39   #2
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
penso che il problema sia la stampa a video, non la condizione.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2008, 20:15   #3
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da Furla Guarda i messaggi
penso che il problema sia la stampa a video, non la condizione.
ma la stampa a video avviene solo ogni megabyte...
cmq ho aumentato al grandezza del buffer, ora leggo 64.000 byte alla volta e nn piu uno alla volta!! così va mooolto piu veloce, ma voglio sapere se posso migliorarlo ancora... qualche idea???
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2008, 08:58   #4
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7062
Quote:
Originariamente inviato da mamo139 Guarda i messaggi
ma la stampa a video avviene solo ogni megabyte...
cmq ho aumentato al grandezza del buffer, ora leggo 64.000 byte alla volta e nn piu uno alla volta!! così va mooolto piu veloce, ma voglio sapere se posso migliorarlo ancora... qualche idea???
La stampa a video rallenta un casino, costringe il programma a state dietro allo standard output(la console per intenderci). Hai già provato con l'opzione -O2 in fase di compilazione? Oppure , devi togliere l'if dentro il while. Molto semplicemente puoi memorizzare le informazioni che vuoi un un array e stamparle alla fine. A meno che non le vuoi in tempo reale.Quell' if dentro il ciclo è davvero deleterio per le prestazioni.

Ultima modifica di Unrue : 17-01-2008 alle 09:22.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2008, 10:39   #5
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da Unrue Guarda i messaggi
La stampa a video rallenta un casino, costringe il programma a state dietro allo standard output(la console per intenderci). Hai già provato con l'opzione -O2 in fase di compilazione? Oppure , devi togliere l'if dentro il while. Molto semplicemente puoi memorizzare le informazioni che vuoi un un array e stamparle alla fine. A meno che non le vuoi in tempo reale.Quell' if dentro il ciclo è davvero deleterio per le prestazioni.

dunque così come lo posto ora va molto piu veloce!!! solo che vorrei un modo piu furbo per contare a che punto dell'operazione è il programma... qualche idea??
Codice:
#include <stdio.h>

int main (void){
    
    char nomefile[20];
    scanf("%s",nomefile);
    printf("%s!\n",nomefile);


    char *buf;
    buf = new char [64000];
    FILE *f, *f_out;
    if ((f = fopen(nomefile, "rb")) && (f_out = fopen("cript.crp", "wb")))
	{
		size_t b;
        long x=0;
		while( b= fread( buf, 1, 64000, f) ) {
            int y;   
            for(y=0;y<=64000;y++) buf[y]=buf[y]+1; 
            x++;
            if((x%16)==0)
            printf("%dMb\n",(x/16));
            fwrite( buf, 1, b, f_out);

        }
	    pclose(f);
	    fclose(f_out);

	}
    
    
    return 0;   
}
mamo139 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
Non solo Prime: ecco le 13 offerte su Am...
Xreal Aura apre le prenotazioni: gli occ...
Snap presenta i nuovi Specs: gli occhial...
Google rilascia Wear OS 7: basato su And...
Microsoft chiude la porta ai Surface da ...
Sedie gaming e da ufficio in offerta: a ...
Viltrox porta il suo 28mm f/4.5 pancake ...
Jensen Huang è andato a zappare l...
Prime Day in anticipo - giorno 3: ci son...
AMD EPYC e Instinct: accordo per fornire...
Amazon spinge Fire TV Stick 4K Select, R...
Ryzen 10000 Olympic Ridge desktop: addio...
Android 17 debutta sui Pixel: ecco cosa ...
Samsung annuncia il Galaxy Book6 Edge co...
Nuove regole per gli acquisti online: da...
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: 10:57.


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