Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] Ottimizzazione.

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214

    [C] Ottimizzazione.

    Ciao a tutti, ho appena completato un progetto piuttosto esteso in C e vorrei iniziare ad ottimizzare un po il codice. Già al momento della stesura ho adottato qualche accorgimento, ma essendo il primo vero programma in C che supera le 50 righe di codice, avrò sicuramente commesso qualche "errore" che inficia le prestazioni. Ho cercato molto su google, ma non ho trovato molto riguardo quest'argomento (è molto trattato C++, ma non tutti gli accorgimenti sono estendibili al C). Al di la dei vari cici sulle stringhe, dove viene sconsigliato l'uso di "strlen(stringa)" come condizione di terminazione (meglio salvarlo in una variabile) non ho trovato gran che. Potete consigliarmi qualcosa? Grazie in anticipo!

  2. #2

    Re: [C] Ottimizzazione.

    Originariamente inviato da Smoke666
    Ciao a tutti, ho appena completato un progetto piuttosto esteso in C e vorrei iniziare ad ottimizzare un po il codice. Già al momento della stesura ho adottato qualche accorgimento, ma essendo il primo vero programma in C che supera le 50 righe di codice, avrò sicuramente commesso qualche "errore" che inficia le prestazioni. Ho cercato molto su google, ma non ho trovato molto riguardo quest'argomento (è molto trattato C++, ma non tutti gli accorgimenti sono estendibili al C). Al di la dei vari cici sulle stringhe, dove viene sconsigliato l'uso di "strlen(stringa)" come condizione di terminazione (meglio salvarlo in una variabile) non ho trovato gran che. Potete consigliarmi qualcosa? Grazie in anticipo!
    Il titolo - in qualche modo - esula dal testo del messaggio: l'ottimizzazione è un concetto ed una vera e propria sottodisciplina ingegneristica che richiede uno sforzo congiunto in ambito hardware, firmware e software, seguendo in dettaglio regole ben precise; ovviamente da ciò si capisce come sia necessario un lungo periodo di studio abbinato ad un'adeguata esperienza 'sul campo' prima di riuscire a compiere i primi passi di 'vera' ottimizzazione.

    Da quanto emerge dal post, si tratta nel caso specifico di fornire all'utente le migliori soluzioni in termini prestazionali (tuttavia non sacrificando uno dei principi del software engineering, la sicurezza). Sarebbe opportuno che postassi il codice in quanto..saremo maghi dell'IT ma non indovini!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214
    Mi sarò espresso male nel titolo, ti ringrazio per la precisazione. Io non cerco una "ottimizzazione" (lasciami passare il termine, tanto ormai hai capito di cosa parlo) pronta del mio codice, ma una serie di regole alle quali attenermi per rendere più snello e performante un qualsivoglia programma. Conosco già l'importanza di una scelta algortmica oculata, come può essere la scelta di un algoritmo di ordinamento piuttosto che un altro. Cercavo più che altro le "cose da non fare e da fare", come ad esempio, il non utilizzare la strlen come condizione di uscita da un ciclo su una stringa, l'utilizzo della keyword "inline" per determinate funzioni, e simili. Può esistere la definizione di un insieme di "regole" siffatte?

  4. #4
    Originariamente inviato da Smoke666
    Mi sarò espresso male nel titolo, ti ringrazio per la precisazione. Io non cerco una "ottimizzazione" (lasciami passare il termine, tanto ormai hai capito di cosa parlo) pronta del mio codice, ma una serie di regole alle quali attenermi per rendere più snello e performante un qualsivoglia programma. Conosco già l'importanza di una scelta algortmica oculata, come può essere la scelta di un algoritmo di ordinamento piuttosto che un altro. Cercavo più che altro le "cose da non fare e da fare", come ad esempio, il non utilizzare la strlen come condizione di uscita da un ciclo su una stringa, l'utilizzo della keyword "inline" per determinate funzioni, e simili. Può esistere la definizione di un insieme di "regole" siffatte?
    Non preoccuparti, il titolo è comunque corretto.

    Dal momento che non hai postato il codice, desumo che la tua richiesta fosse più generale, quindi non riferita al codice che hai scritto.
    E' comunque difficile poterti aiutare dal momento che non conosciamo il tuo grado di preparazione: ci sono tante tecniche ed accorgimenti utilizzabili per migliorare l'outcome del sorgente ed elencarle qua è impossibile visto il contesto del forum; prova a fare degli esempi concreti.

  5. #5
    Puoi leggere questo articolo. E' scritto molto bene ed è pieno zeppo di dritte!
    http://clessonsonline.blogspot.com

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214
    Ottimo grazie, era qualcosa di questo genere che cercavo!

  7. #7
    Occhio che in quell'articolo ci sono suggerimenti giusti, ma anche roba che, sviluppando per PC "normali", non ha molto senso (o perché l'architettura ha "debolezze" diverse rispetto ai dispositivi ARM, o perché i compilatori moderni se ne occupano già da loro) o è addirittura sbagliata.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.